R-1.0.0 is released

Peter Dalgaard BSA p.dalgaard at biostat.ku.dk
Tue Feb 29 10:51:27 CET 2000

I've rolled up R-1.0.0.tgz a short while ago. 

You can get it from




or wait for it to be mirrored at a CRAN site near you within a day or
two. It should get to the CRAN master site within a few hours.

There's also a version split in three for floppies if you prefer

Since this is a major release, we've made a formal release
statement this time. Below is an excerpt; full text is available at 


"The release of a current major version indicates that we believe that
R has reached a level of stability and maturity that makes it suitable
for production use. Also, the release of 1.0.0 marks that the base
language and the API for extension writers will remain stable for the
foreseeable future. In addition we have taken the opportunity to tie
up as many loose ends as we could."

	For the R Core Team,

	Peter D.

Here's the relevant bit of the NEWS file:



    o	The entry points [dpq]norm no longer exist: the header file
	R_ext/Mathlib.h must be used and such code re-compiled.

    o	Header files in R_ext must be given explicitly as e.g.

    o	New function  log1p(x) := log(1 + x) , accurate for |x| << 1.

    o	HTML searches can now select between any combination of
	titles, keywords and object names. The keyword list of
	SearchEngine.html is automatically built from KEYWORDS.db.
	Missing links are now resolved using the search engine.

    o	A data subdirectory of the working directory will be
	searched for data, by default after all the loaded packages
	(including base).

    o	Data directories can now be zipped as Rdata.zip, provided a
	list of contents is provided in file `filelist'.

    o	New function try(expr) which provides a user-friendly wrapper
	to restart().

    o	New function geterrmessage() to retrieve the last error
	message, for use in try() and user's error handlers, and new
	option "show.error.messages" to control the printing of error

    o	persp() now labels its axes.

    o	?plotmath documents the plotting expressions facility much
	more comprehensively, with tables in the examples.

    o	New functions dump.frames() and debugger() allow post-mortem
	debugging.  See the help on debugger.

    o	New functions by() and merge() to split and join data frames.

    o   Generic methods now do "match before dispatch", so
        plot(pch=2, y ~ x) invokes plot.formula.  Notice that this will
        break user code if it has renamed the dispatch argument and
        uses the original name for a different argument.

    o	Long-named command-line options also allow `--name VALUE'.

    o   arima0() now uses optim() rather than nlm(), and is thereby
	normally faster and gives more accurate solutions.  Perhaps
	more importantly, it fails to converge much less often.

    o   Enhanced pairs() function allowing separate upper, lower and
	diagonal panel functions and control of diagonal labels.
	(Much of this was contributed by Jens Oehlschlaegel-Akiyoshi.)

    o	Links to R objects in other packages in help files can now be
	specified explicitly as \link[pkg]{topic} or

    o	optim() has a new simulated annealing method contributed by
	Adrian Trapletti.

    o   Hershey vector fonts are available in text() and contour().
        Documentation for Hershey vector fonts is in help(Hershey).

    o	The HTML function indices (for packages and for all installed
	functions) and the index to the reference manual now omit
	methods for generic functions if they would immediately follow
	the generic and refer to the same file. This reduces the
	clutter considerably.

    o   New functions points.formula() and lines.formula() to supplement
        plot.formula(). The latter has been enhanced so that all
        arguments are now evaluated in the supplied data frame and all
        subsettable arguments are subsetted. Notice that the data=
        argument can no longer be given as a positional argument but
        must be given in keyword form.

    o   The behaviour of pmatch() has been changed to be S-compatible:
	in particular the meaning of duplicates.ok=TRUE has changed.
	The help for pmatch and charmatch now gives more precise
	descriptions, including of their differences.

    o   print.hclust(), hclust() and dist() now store the method
	that has been used.

    o   If there are unmatched function argument(s), the first found
	is named in the message, for example
	`unused argument(s) (xlabel ...)'.

    o   Conversion from Rd to raw nroff is no longer available.

    o   text() now accepts vector "col", "cex" and "font" arguments.

    o   "default" is now a valid argument to RNGkind().

    o   nlm() and optim() will now give up immediately they try to
	step to a non-finite value: nlm at least would go into an
	infinite loop.

    o	"mostattributes(obj) <- value" utility useful for careful
        attributes' inheritance; e.g. for fixing pmax/pmin (see below).


    o   (0.99.0a) The internal code for strsplit no longer destroys
	other internal structures, e.g. postscript file output on

    o   (0.99.0a) nlm() no longer segfaults with Hessian specified.

    o   (0.99.0a) Gnome version plotmath works, kind of

    o   (0.99.0a) edit.data.frame() now handles character vectors
        better, provided they were generated with I().

    o   (0.99.0a) Attempt to special-case print-buffer allocation
	with just a format argument was abandoned, since there is
	no portable way of doing it and it caused compile problem
	on Alpha.

    o   tempfile("") now works on all Unix platforms, and
	tempfile("a b c") returns a single name (with spaces in).
	The file names are now unique across processes (Unix), are
	guaranteed not to exist and very likely to be unique within
	an R session.

    o	The search semantics of data(), example() and help() have changed
	(see their help pages). In particular, they will normally
	look in the package which was loaded, even if it is not in
	one of the libraries given in .lib.loc.	 Autoloads are no
	longer included in the search (as they searched whole packages,
	not just the autoloaded objects).

    o	The documentation for .Rd files said & must be entered as \&
	but only the unescaped form was processed correctly. Now both
	are accepted but & is preferred.

    o	list.files now skips non-existent/unreadable directories with
	a warning, rather that failing with an error.

    o	Lots of help examples now tidy up the files they created, and
	detach data frames and libraries they attach.

    o	library(help=foo) lists only contents of first version if
	multiple matches are found on lib.loc.

    o	round(2.345e-99, 100) now works (not giving 0).
	C functions fprec() and fround() [= R's signif() and round()],
	now use R_pow_di(10.0, n) which is clean and more efficient.
	This changes some results in the least significant bits.

    o   rpois sometimes had problems with mu=0, now special-cased

    o   Rare memory overrun in rpois fixed.

    o   --nsize and --vsize arguments to R CMD check now work.

    o   plot.stepfun had renamed the dispatch argument and used the
        original name "x" for a different argument which broke on the
        new `match & dispatch' code. Changed to "xval".

    o   The return value for par() was incorrectly documented, and in
	consequence cpgram() was not re-setting "pty".

    o   package.dependencies() printed unnecessary debugging messages
	(version comparison): these have been removed.

    o   backslashes in examples in help files are now converted
	correctly to latex.

    o   qchisq with non-centrality parameter now does something.

    o   Greek symbols are now converted correctly in HTML help (but
	only rendered correctly on a few browsers).

    o   rbind(x, y) works when x has no columns.

    o   \tabular in Rd files is rendered better in latex, and long
	tabular material is now acceptable (and split over pages).

    o   evaluation depth wasn't properly reset by  "next"

    o   Old (pre-0.63.1) .Random.seed would cause problems if used.

    o   Row indexing of data.frames by characters (e.g. y["ab", ])
	was wrong, as pmatch was not S-compatible.

    o   Contour labels used to be rounded to integers.

    o   Calling rbinom() repeatedly with the same p but different n
	gave incorrect results.

    o   Rd2contents assumed the \name field was the file name, so
	searches could lead to non-existent links.

    o   Assigning functions to list elements is not longer disallowed.

    o   Unified usage statement to R CMD xxx for all commands

    o   Using duplicated new string indices in [<- caused a crash on
	some platforms, e.g. x <- 1:2; x[c("3", "3")] <- 3; x.

    o   rle() can now handle character vectors, as documented.

    o   print.default failed to reset its settings, so, e.g. na.print
	could persist when printing a list.

    o   [cr]bind could sometimes return an invisible value.

    o	axis() and rug() sometimes extended the axis line too far.
	rug() always clipped x values to the plot region, but now
	admits to doing so with a warning.

    o	plot() and axis() got into trouble with very small relative
	ranges: these are now required to be at least 100x the machine

    o	split.screen(, erase=TRUE) failed to create a new plot, so
	failed if it was used on a postscript device before other plots.

    o	plotting with lwd = 0 also set the dash length to 0: now
	dash lengths are scaled up for lwd > 1 but not reduced for
	0 <= lwd < 1.

    o   plotting a " " vertically caused an X11 error with some fonts,
        (notably URW fonts on RedHat) causing plot.lm to crash R

    o   F distributions with huge DF now behave more sensibly

    o   Crashes could occur if there was an error in inline
        parameters, because the call was not being recorded. It is

    o   Title field of DESCRIPTION now overrides TITLE file.

    o   R now reports `50 or more warnings', not just 50, as it only
	displays the first 50.

    o   Resetting the RNG state resets the state of the Box-Muller
	generator too.

    o   Pointer protection bug in load() code.

    o	Assignment with unknown string index caused memory corruption
        when used on matrices.

    o	It is now possible to call Fortran routines d1mach and 11mach
	on platforms which do not append underscores.

    o	Additions to plots by identify() and locator() were not being
	recorded, and so did not appear when a plot was copied or

    o	The defaults for `na.action' arguments were inconsistently
	documented. In R the default is taken from the
	options(na.action) setting, and that defaults to `na.omit'.
	If there is no `na.action' setting, the default is `na.fail'.
	For consistency, the default for replications() has been

    o   Fix cases with lambda==0 in Poisson distribution

    o   demo(is.things) had been broken by the introduction of is.element.

    o   palette() didn't check for overflow and was limited to 256
        colors, so palette(colors()) would segfault. Limit increased
        to 1024 and check inserted.

    o	C functions fprec() and fround() [= R's signif() and round()],
	now use R_pow_di(10., n) which is clean and more efficient.
	This changes some results in the least significant bits.

    o	pmin(c(a=1), 2:3) now works {and pmax(.) too}.

   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 mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-announce-request at stat.math.ethz.ch

More information about the R-announce mailing list