Dear Emacs, please make this -*-Text-*- mode!
	**************************************************
	*						 *
	*	       2.0 SERIES NEWS			 *
	*						 *
	**************************************************


		CHANGES IN R VERSION 2.0.1


NEW FEATURES

    o	Platform equivalence in library() is tested by a new function
	testPlatformEquivalence() which ignores the 'vendor' field and
	can be customized by cognescenti.

    o   The assignment form of split() allows recycling of vectors 
	within the value list. In particular, things like 
	    split(x, g) <- lapply(split(x, g), mean)
	now work


DOCUMENTATION

    o	Manual `Writing R Extensions' has new sections on writing
	portable packages and on writing new front-ends for R -- the
	latter will be more comprehensive in R 2.1.0 which has new
	public header files.


DEPRECATED & DEFUNCT

    o	The aqua module in MacOS X is deprecated.

    o	Capabilities "bzip2", "GNOME, "libz" and "PCRE" are deprecated.

    o	The GNOME GUI on Unix-alikes is deprecated as part of R;
	it will be available in another form as from R 2.1.0.

    o	The undocumented use of UseMethod() with no argument is now
	formally deprecated.


INSTALLATION CHANGES

    o	Building on Alpha OSF/1 no longer forces the C flag -std1,
	which appears to be no longer needed.  (PR#7257)

    o	The compiler flag -mieee-fp is no longer used on i386 Linux
	(these days it is only passed to the linker and was only
	invoked for compilation steps).

    o	-D__NO_MATH_INLINES is only used on older ix86 glibc-based
	systems which need it (tested at configure time).  This leads to
	small improvements in speed and accuracy on modern systems.

    o	If makeinfo >= 4.5 is not available, warnings are given that
	some of the HTML manuals will be missing, and the index page
	given by help.start() will link to CRAN versions of those manuals.

    o	Files aclocal.m4 and acinclude.m4 used in maintainer builds
	are not longer included in the distribution.


C-LEVEL FACILITIES

    o	It was not clear in 'Writing R Extensions' that some of the
	entry points in the 'Utilities' section were not declared in
	<R.h> (they were in <R_ext/Applic.h>).  Now all the entry
	points in that section are declared in <R_ext/Utils.h>,
	included by <R.h>.


BUG FIXES

    o   The grid.grab() function in package grid would throw an error
	if there were no viewports pushed (now returns NULL).

    o	model.frame.default() takes row names from the response
	variable if that has suitable names and there is no 'data'
	argument.  (This follows S but was not previously implemented
	in R.)

    o	write.table() was not respecting the 'dec' argument for complex
	numbers.

    o	write.table() printed a mixture of numeric and complex numbers
	as all complex.	 (PR#7260)

    o	R CMD INSTALL failed with versioned installs on packages which
	save images (only).

    o	dlogis() gave NaN not 0 for large negative arguments.

    o	Importing from another namespace was broken for versioned
	installs, incorrectly reporting something like
	"package 'imported_from' does not have a name space".

    o	The GNOME interface under Linux/Unix was broken. (PR#7276)

    o	For the jpeg/png devices under Linux/Unix, under certain rare
	circumstances clipping needed to be cleared before starting a
	new page.  (PR#7270, which has been the case since the devices
	were introduced in 1.1.0.)

    o	First lattice plot (first grid.newpage() call) did not start
	a new page IF there had been a previous traditional graphics
	plot (on the same device).

    o	Using install.packages() to install the same package to more
	than one library gave an incorrect warning message.  (If there
	were two or more such packages it might give an error.)

    o	.packages(all.available=TRUE) returned packages with an invalid
	version field in their DESCRIPTION whereas .find.packages() and
	packageDescription() did not.  Now all do not.

    o	packageDescription() now correctly reports that a package does
	not exist, rather than that its DESCRIPTION file is 'missing
	or broken'.

    o	'make dist' from builddir != sourcedir was copying not linking
	recommended packages to *.tgz.

    o	Slots in prototype objects can inherit from locally defined
	classes (which were not being found correctly before).

    o	Several fixes to the behavior of as() when there are either
	coerce= or replace= methods supplied in a call to
	setIs(). Related fixes to setIs() to handle correctly previous
	methods, if there were any.

    o	splinefun(1[0], 1[0])(1) doesn't segfault anymore (PR#7290).
	spline() and splinefun() now also work with missing values by
	omiting them.

    o	ecdf() was failing on inputs containing NAs. (Part of PR#7292)

    o	tools:::.install_package_description was splitting the Built:
	field across lines on platforms with very long names.

    o	capabilities() was wrong for the Aqua GUI on MacOS X.

    o   Using Rprof() with a non-writable 'file' argument is now a 
	non-fatal error and does not abort R.

    o   binom.test() did not deparse its arguments early enough such
        that the reported data were ugly if x was a table.

    o	Systems based on glibc, including those using R's substitute for
	strptime, were handling strptime("2001", "%Y") incorrectly, in
	some cases crashing.  R's substitute code has been corrected
	(but problems may remain if glibc is used).  See the ?strptime
	for what should happen (which is system-specific).

    o	untrace() after trace() failed if package 'methods' was attached.
	(PR#7301)

    o	summary.stepfun() was reporting for n > 6 summaries of the
	knots and levels as the actual values.  Both print() and
	summary() methods called the constant values "step heights",
	although they were not the heights of the steps.

    o	is.na/is.nan() were giving spurious warnings if applied to a
	raw vector.

    o	is.atomic() gave incorrect result (false) for a raw vector.

    o	rank() and order() accepted raw and list inputs, but did not
	give a sensible answer (always 1:n).  Similarly, partial sorts
	of a raw vector were accepted but did nothing.

    o	require() without a version argument tried for an unversioned
	load of a package even though a versioned install was already
	loaded.  This often led to a message that a required package
	was being loaded when it was not actually being loaded.

    o	str(<S4.object>) made use of attributes() instead of slot(),
	and hence didn't properly print NULL slots.

    o	contrib.url() now handles URLs ending in '/' correctly.

    o	str() removed any class from externalptr objects.

    o	logLik() and hence AIC() failed or gave incorrect answers 
	on "lm" fits with na.action = na.exclude (and perhaps other 
	na.actions's except na.omit and na.fail).

    o	pmax() and pmin() sometimes used NAs in internal subassignments,
	and sometimes these failed.

    o	Subassigning an expression, e.g. expr[2] <- 1, could leave an
	invalid object and so cause a segfault. (PR#7326)

    o	download/install.packages() would misbehave if there was more
	than one version of a package in a repository.

    o	sort(partial=) silently ignored some other arguments: using
	'decreasing' or 'index.return' or supplying a factor are now
	errors.
	
    o   The ave() function had trouble if the grouping contained 
        unused levels. 
	
    o   read.fwf() got confused by skip > 0 and could infinite loop
	under some circumstances.  (PR#7350)

    o	upgrade(x, ask = FALSE) was broken for a "packageStatus" object.

    o   Class "raw" had been omitted from the list of basic classes in
	the "methods" package and so could not be used in S4 classes.

    o   Function getGroupMembers(), part of the definition of S4
	classes, had been promised for release 2.0, but slipped through.




	*********************************************************
	*							*
	*	News of 1.x.y and 2.0.0 is in file `ONEWS'	*
	*	News of 1.0.0 and earlier is in file `OONEWS'	*
	*							*
	*********************************************************