Commit 87e1c683 authored by Dirk Eddelbuettel's avatar Dirk Eddelbuettel

Import Upstream version 0.61.2

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

This diff is collapsed.
This diff is collapsed.
COPYRIGHT STATUS
The bulk of this code is copyright by Robert Gentleman and Ross Ihaka.
See the file COPYING for the exact conditions under which you may
redistribute it.
Some of the code contain different copyright statements. It is used
here in accordance with the copyright conditions in that code.
src/regex/*
Copyright 1992, 1993, 1994 Henry Spencer.
Copyright (c) 1994 The Regents of the University of California.
src/unix/rotated.[ch]
Copyright (c) 1993 Alan Richardson
src/math/pbeta.c
Copyright 1984, 1995 by Stephen L. Moshier
lib/afm/*
Copyright (c) 1984 Adobe Systems Incorporated.
INSTALLING R UNDER UNIX
GENERALITIES
R will configure and build under a number of common Unix platforms
including dec-alpha-osf, freebsd, hpux, linux-elf, sgi-irix, solaris,
and sunos. In general it is relatively easy to adapt R to new
platforms. See below for details.
SIMPLE INSTALLATION
Choose a place to install the R tree (R is not just a binary, but has
additional data sets, help files, font metrics etc). Let's call this
place RHOME. Untar the source code. This should create directories
src, etc, cmd, help and doc. Issue the following commands:
./configure
make
If these commands execute successfully, the R binary will be copied to
the `$RHOME/bin' directory. In addition, a shell script font-end
called "R" will be created and copied to the same directory. You can
copy this script to a place where users can invoke it, for example to
`/usr/local/bin/R'. You could also copy the man page `R.1' to a place
where your man reader finds it, such as `/usr/local/man/man1'.
Using
make docs
will build plain text help pages as well as HTML and LaTeX versions of
the documentation (the three kinds can also be generated separately
using make help, make html and make latex). Note that as of R version
0.60, you need Perl version 5 to build the documentation. If this is
not available on your system, you can obtain precompiled documentation
files via the `doc/pre-formatted-help' directory of the Comprehensive
R Archive Network (CRAN), see the file `RESOURCES' for information on
CRAN.
Now type R and reach for your S manuals ...
USING FORTRAN
R is "shipped" configured so that it does not need a Fortran compiler
to build and install. For performance or other reasons you may
wish to use your Fortran compiler to compile those pieces of R
which are written in Fortran. To do this, edit the file config.site
and change the line "F77=no" as indicated in the comments above
before typing configure. There are no guarantees that this will
work, but it may.
NEW PLATFORMS (Standards Hah!)
There are a number of sources of problems when installing R on a new
harware/os platform.
1. Floating Point Arithmetic: R supports the POSIX, SVID and IEEE
models for floating point arithmetic. The POSIX and SVID models
provide no problems. The IEEE model however can be a pain. The
problem is that there is no agreement on how to set the signalling
behavior; sgi/irix and linux require no special action, freebsd
requires a call to (the macro) fpsetmask(0) and osf1v3.2 requires
that computation be done with a -ieee_with_inexact flag etc...
On a new platform you must find out the magic recipe and add some
code to make it work. This can often be done via the file
config.site which resides in the top level directory.
2. Shared Libraries: There seems to be very little agreement across
platforms on what needs to be done to build shared libraries.
there are many different combinations of flags for the compilers
and loaders. The technique we use is to interrogate the X window
system about what it does (using xmkmf). This often works, but
you may have to manually override the results. Scanning the cc(1)
and ld(1) manual entries usually reveals the correct incantation.
Once you know the recipe you can modify the file config.site
(following the instructions therein) so that the build will use
these options.
If you do manage to get R running on a new platform please let us know
about it so we can modify the configuration procedures to include that
platform.
If you are having trouble getting R to work on your platform please
feel free to get in touch to ask questions. We've had a fair amount
of practice at porting R to new platforms...
Ross-n-Robert
R@stat.auckland.ac.nz
R SOURCE CODE MIRROR SITES
The primary R distribution site
ftp://stat.auckland.ac.nz/pub/R/
is mirrored DAILY at the following sites.
EUROPE:
ftp://ftp.stat.math.ethz.ch/R/
ftp://statlab.uni-heidelberg.de/pub/mirrors/auckland/R/
JAPAN:
ftp://ftp.u-aizu.ac.jp/pub/lang/R/
NORTH AMERICA:
Statlib mirrors R: http://lib.stat.cmu.edu/R/
In the interests of preserving international bandwidth (and of
keeping our internet bills under control) please use a site near
you if possible.
####---- Master Makefile for R --- this is NOT made by configure ---
install: config.status
@echo Building/Installing R
cd src; make install
@echo; echo You should; echo " make docs"
@echo "now, or at least";echo " make help"; echo
config.status: configure config.site
-./configure
docs: build-docs
help: build-help
html: build-html
latex: build-latex
build-docs build-help build-latex build-html test-Examples:
-@cd etc; make $@
tests: test-Examples
patches:
@echo "Patches? Patches? We don't need no stinking patches!"
clean:
@echo "Cleaning at top level"
@cd demos/dynload; make $@
@echo "Cleaning ./etc/"; cd etc; make $@
@echo "Cleaning the source tree"; cd src; make $@
moreclean: clean acclean
@echo "More Cleaning ./etc/"; cd etc; make $@
acclean:
@echo cleaning configure files
@rm -f config.cache config.log config.status
distclean: realclean
realclean: acclean
@echo cleaning at top level
@-rm -f bin/R*
@-rm -rf `echo library/* | sed 's@library/CVS *@@'`
@-rm -f doc/manual/pkg-*
@cd demos/dynload; make $@
@echo "Realcleaning ./etc"; cd etc; make $@
@echo "Realcleaning the source tree"; cd src; make $@
SUCCESSFUL BUILDS
R is known to configure and compile on the following platforms.
If you have success on any others, let us know the platform names
and any changes you had to make so we can update this file and
our installation procedures.
PLATFORM COMPILER NOTES
i386-unknown-freebsd2.2.2 gcc
i686-unknown-linux gcc
mips-sgi-irix6.2 cc
sparc-sun-solaris2.5.1 gcc
hppa1.1-hp-hpux9.07 c89 (1)
hppa1.1-hp-hpux10.20 c89
OLD
alpha-dec-osf3.2 cc
NOTES
(1) The Makefile in src/main must be edited manually after
configuration and the reference to the library "-lSM"
removed.
THE R PROJECT LIST
Dream, dream, dream ...
- The Everly Brothers
Here is a list of projects which we think could enhance R substantially.
Some of these we re thinking about doing ourselves, but others could be
taken on by anyone.
o WINDOWS 3/95/NT PORT.
Robert has this in hand and is nearly done.
o POWER MACINTOSH PORT.
This is temporarily on hold, pending funding or Ross having some
free time. [ We have to do this. Our teaching labs are Mac based. ]
o LIBRARY STRUCTURE
We need a way to "attach" libraries. This should happen in
conjunction with "save" and "load", and with some sort of hashing
to speedup lookups in libraries.
o 3D GRAPHICS
We need something like "persp" for plotting surfaces, although it
would be nice to have something more sophisticated. Interesting
gadgets to look at include:
* "Lab-3d" has some pretty nifty techniques for hidden line
removal, but it looks like is done in "image" coordinates.
This would be a problem for any device independent system.
* "zplot" has a very nice user interface and provides a method
of viewing surfaces in 3d. An efficient set of hidden line
and hidden surface routines.
* "plotmtv" is more static, but has some interesting contouring
ideas.
o DYNAMIC GRAPHICS
Statistics for the video game generation ... We need to move to
an event-based model for this. See the 3D graphics above plus:
* X3d looks like it would be worth a look. It provides very
fast response for complex wireframe structures.
* XWireframe has some nice little features.
* XGobi is nice too.
o MULTIPLE ACTIVE DEVICE DRIVERS.
The basics of this is actually pretty simple to implement. The
hard part is thinking about how to manage display lists. It would
be nice to have a choice of "in-memory" or "disk-based" display-list
storage.
o MATHEMATICS IN PLOT LABELS
We have an expression parser and can grab parse trees. All we
need is access to font metrics for bounding boxes (done now) and
some time to plow through a couple of appendices of the TeX Book.
[ Ross and Paul Murrell are working on this ... ]
o LINEAR MODELLING
The whole "glm" suite needs to be rethought and redone.
We need "aov" and friends (pretty easy given what we have).
Labelling for nested specifications needs to be handled correctly.
Additional functionality (drop1, update ...).
o NONLINEAR MODELLING
Was that Doug Bates I heard rustling about over there in the
corner ... :-)