-*- mode: text; mode: view-minor -*-

($Revision: 5.1 $)

Emacs Speaks Statistics (ESS), version 5.0
------------------------------------------

This is the README file for the distribution of ESS version 5.0, which
used to be S-mode.  ESS is an Emacs-Lisp interface for interactive
statistical programming and data analysis.  Languages supported
include: S dialects (S 3/4, S-PLUS 3.x, and R), LispStat dialects
(XLispStat, ViSta), and SAS.  Stata and SPSS dialect (SPSS, Fiasco)
support is being examined for possible future implementation (a
preliminary Stata mode is distributed).

ESS grew out of the desire for bug fixes and extensions to S-mode-4.8.
In particular, XEmacs support as well as extensions to incorporate R
were desired.  In addition, with new modes being developed for R,
Stata, and SAS, it was felt that providing for a unifying framework
would eliminate differences in the user interface, as well as to
provide for faster development of production tools and statistical
analysis.  5.0 has, for its guts, the basic framework from S-mode.
However, it has been cleaned, streamlined, brought closer to
conformance as a standard GNU Emacs package, and redesigned for
modularity and reuse.

The current development team is led by A.J. (Tony) Rossini
(rossini@stat.sc.edu and arossini@biostat.washington.edu), who did the
initial port to XEmacs and has been the primary coder.  Martin
Maechler (maechler@stat.math.ethz.ch) and Kurt Hornik
(hornik@ci.tuwien.ac.at) have assisted with S-PLUS, S4, R, and
XLispStat sub-modes, and Richard M. Heiberger
(rmh@fisher.stat.temple.edu) has done much of the work for
implementing the SAS sub-mode, as well as assisted with S-PLUS and S4
development.  Douglas Bates (bates@stat.wisc.edu) contributed the
initial S4 mode, as well as provided disk space, ftp and http access
to the source for development purposes.

We are grateful to David M. Smith , the previous developer (for S-mode
3.x and 4.x), as well as to the initial developers of S-mode, Doug
Bates, Ed Kademan and Frank Ritter.

In addition, some of the code has been and will be borrowed from Tom
Cook (from his excellent SAS mode) and Thomas Lumley (preliminary
Stata mode), gratefully (from us) and with permission (from them).

The name is ESS.  Not ESS-mode.



0. LICENSE
----------

ESS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
	
ESS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
in the file COPYING in the same directory as this file for more
details.


1. FEATURES
-----------

Languages Supported (or planned to be supported)

	S dialects (S 3/4, S-PLUS 3.x/4.x/5.x, and R)
	LispStat dialects (XLispStat, ViSta)
	SAS
	Stata
	SPSS dialects (SPSS, Fiasco (GNU project))
	
Editing source code (S, LispStat, SAS)

        Syntactic indentation and highlighting of source code 
        Partial evaluations of code 
        Loading and error-checking of code 
        Source code revision maintenance 

Interacting with the process (S, LispStat, SAS)

        Command-line editing 
	Searchable Command history 
        Command-line completion of S object names and file names 
        Quick access to object lists and search lists 
        Transcript recording 
        Interface to the help system 

Transcript manipulation (S3, S+3, S4, R, XLispStat)

        Recording and saving transcript files 
        Manipulating and editing saved transcripts 
        Re-evaluating commands from transcript files 

Help File Editing (R)

        Syntactic indentation and highlighting of source code.
        Sending Examples to running ESS process.
	Previewing

See the accompanying manual ess.texi for details of features of ESS.
See the file Doc/NEWS for changes in recent versions.

2. STABILITY
------------

Version 5.0 is meant as a functional release.  However, there are a
few known bugs (and countless other undiscovered ones); see the file
Doc/TODO for details.  Bug reports are solicited; see the BUGS section
below.  Patches or suggested coding fixes with bug reports are much
appreciated!

3. REQUIREMENTS
---------------

ESS version 5.0 requires Emacs version 19.29 or later, or version
XEmacs 19.14 or later.  ESS is supposed to work with any version of S,
S-PLUS, R, SAS, or XLispStat.

It has been most thoroughly tested with:

	S-PLUS 3.3 and 3.4, R 0.49 and 0.50, XLispStat 3.50, S4, and
	SAS on (when available) SunOS, Solaris, SGI, and Linux (Unix)
	systems;

	Emacs 19.29, 19.34, XEmacs 19.16, XEmacs 20.4.

It may need some work with other configurations.  We include
configuration suggestions for emacs 19.28 in Doc/README-19.28.
These are the changes we made in order to use ESS with SAS on a Digital
Alpha running Emacs 19.28.

Suggestions and information about attempts to port to
Microsoft-developed operating systems are encouraged.  In particular,
it is an open question whether or not it can be implemented for
XLispStat, ViSta, R, S-PLUS 4.0, Stata, and SAS under a Microsoft
environment using NTEmacs (or the version of XEmacs currently under
development).


4. GETTING THE LATEST VERSION
-----------------------------

The latest versions of ESS are always available by WWW from:

	http://franz.stat.wisc.edu/pub/ESS/
	ftp://franz.stat.wisc.edu/pub/ESS/
 
The HTML version of the documentation can be found at:

	http://www.stat.math.ethz.ch/ESS/


5. INSTALLATION
---------------

* cd to a directory where you keep emacs lisp files, or create a new
  directory to hold the distribution.  This directory will be referred
  to below as "the ESS-5.0 distribution directory".  It will contain,
  at the end, the tar file ESS-5.0.tar.gz, and a directory for
  the ESS source, which will be termed "the ESS-5.0 directory".  Note
  that the .elc files may be installed elsewhere (as specified in the
  Makefile) if desired.

* Retrieve the compressed tar file from one of the FTP or WWW archive
  sites via FTP (or HTTP).

* Copy ESS-5.0.tar.gz to the location where you want the ESS-5.0
  directory, and cd there.  Extract the files from the distribution,
  which will unpack into a subdirectory, ESS-5.0.

	gunzip ESS-5.0.tar.gz
	tar vxf ESS-5.0.tar

	(or: gunzip < ESS-5.0.tar.gz | tar vxf - ).
	(or using GNU tar:  tar zvxf ESS-5.0.tar.gz).

  The tar command will extract files into the current directory.

  Do not create ESS-5.0 yourself, or you will get an extra level of
  depth to your directory structure.

* Edit the file ess-site.el as explained in the comments section of
  that file.  Installations that are using ESS only for S-plus 3.x
  will probably not need to make any changes.  Installations that also
  have one or more of (S4 R SAS XLispStat Stata) will need to uncomment
  corresponding lines in ess-site.el.

* READ THIS ITEM THOROUGHLY BEFORE STARTING: 

  In the ESS-5.0 directory, edit the file Makefile (only if you want
  to place the executables in other locations; see LISPDIR and
  INFODIR) and then type:

	make
	make install

  This will install the info files (and the lisp files, if they
  are to go in another directory).  Don't forget to edit the file
  `dir' in the info directory specified by INFODIR in the Makefile.
  See the sample `dir' file for an example of the line to add.
	
  If you are using XEmacs, you might do:

	make EMACS=xemacs
	make EMACS=xemacs install

  instead of editing the Makefile.

  An alternative, if you are running XEmacs and have access to the
  XEmacs system directories, would be to place the directory in the
  site-lisp directory, and simply type "make"  (and copy the
  documentation as appropriate).  

  For Emacs, you would still have to move the files into the top level 
  site-lisp directory.

* Add the line

	(load "/PATH/ess-site")

  to your .emacs file (or default.el or site-init.el, for a site-wide 
  installation).  Replace `/PATH' above with the value of
  ess-lisp-directory as defined in ess-site.el.

  Alternatively, if ess-site.el is in your current Lisp path, you can
  do:

	(require 'ess-site)

  to configure Emacs for ESS.

* (OPTIONAL) If you are running S-PLUS or R, you might consider
  installing the database files.  From within (X)Emacs, "C-x d" to the
  directory containing ESS.  Now:

       M-x S+3
  (get running.  once you have reached the SPLUS 3.x prompt, do:)
       M-x ess-create-object-name-db
  (this will create the file: ess-s+3-namedb.el; if it isn't in the
   ESS directory, move it there).

  Then, completions will be autoloaded and will not be regenerated for 
  every session.

  For R:
      M-x R
  (get running.  once you have reached the R prompt, do:)
      M-x ess-create-object-name-db
  (this will create the file: ess-r-namedb.el; if it isn't in the
   ESS directory, move it there).
   

* For more information on using ESS in your daily work, see the files
  README.S, README.SAS, and README.XLispStat.  


  For the impatient, the quick version of usage follows:

* To edit statistical programs, load the files with the requiste
  extensions  (".sas" for SAS, ".S" for S-PLUS, ".R" for R, and ".lsp" 
  for XLispStat).

* To run statistical processes under (X)Emacs:

  Run S-PLUS 3.x with:

	M-x S+3

  (or M-x S  using backwards compatibility).  You will then be asked
  for a pathname ("S starting data directory?"), from which to start
  the process. 

  If you wish to run R, you can start it with:

	M-x R

  XLispStat can be run with 

	M-x XLS

  SAS can be run with:

	M-x SAS

* That's it!


6. BUGS
-------

Please send bug reports, suggestions etc. to

	ess-bugs@stat.math.ethz.ch

The easiest way to do this is within Emacs by typing

	M-x ess-submit-bug-report 

This also gives the maintainers valuable information about your
installation which may help us to identify or even fix the bug.




7. THE ESS MAILING LIST
--------------------------

There is a mailing list for discussions and announcements relating to
ESS.  Join the list by sending an e-mail with "subscribe ess-help"
(or "help") in the body to ess-help-request@stat.math.ethz.ch;
contributions to the list may be mailed to ess-help@stat.math.ethz.ch.
Rest assured, this is a fairly low-volume mailing list.

The purposes of the mailing list include

- helping users of ESS to get along with it.
- discussing aspects of using ESS for GNU Emacs and XEmacs.
- suggestions for improvements.
- announcements of new [beta] releases of ESS.
- posting small patches to ESS.

----
Richard M. Heiberger <rmh@fisher.stat.temple.edu>
Kurt Hornik <hornik@ci.tuwien.ac.at>
Martin Maechler <maechler@stat.math.ethz.ch>
A.J. (Tony) Rossini <rossini@stat.sc.edu>