1 General Information: README
This is the README file for the distribution of ESS version
5.3.1
ESS is a GNU Emacs and XEmacs mode for interactive statistical programming
and data analysis. Languages supported: the S family (S 3/4, S-PLUS
3/4/5/6/7, and R), SAS, XLispStat, Stata and BUGS. Installation help can
be found in sections for both Unix and Windows. ESS grew out of the desire
for bug fixes and extensions to S-mode and SAS-mode as well as a consistent
union of their features in one package.
The current development team is led by Martin Maechler since August
2004. Former project leader A.J. (Tony) Rossini
(rossini@blindglobe.net) did the initial port to
XEmacs and has been the primary coder. Martin Maechler
(maechler@stat.math.ethz.ch) and Kurt Hornik
(Kurt.Hornik@R-project.org) have assisted with S-PLUS, S4, R, and
XLispStat. Stephen Eglen (stephen@gnu.org) has worked mostly
on R support. Richard M. Heiberger (rmh@temple.edu) has
assisted with S-PLUS and S4 development for Windows. Richard and
Rodney A. Sparapani (rsparapa@mcw.edu) have done much of the work
implementing interactive SAS (iESS[SAS]) and batch SAS (ESS[SAS]) support.
We are grateful to the previous developers of S-mode (Doug Bates, Ed Kademan,
Frank Ritter, David M. Smith), SAS-mode (Tom Cook) and Stata-mode (Thomas
Lumley).
1.1 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.2 Starting an ESS process
To start an S session on Unix or on Windows when you
use the Cygwin bash shell, simply type M-x S RET.
To start an S session on Windows when you
use the MSDOS prompt shell, simply type M-x S+6-msdos RET.
1.3 New Features
Changes/New Features in 5.3.1:
- See the docs for 2 ways to install ESS for XEmacs
- by uncommenting the XEmacs part of
Section 1 of Makeconf and performing
make install
- by unpacking either
ess-5.3.1.tgz or ess-5.3.1.zip into
PREFIX/lib/xemacs/site-packages on unix or
PREFIX\XEmacs\site-packages on windows
- ESS[R]: fixed bugs so that Rterm.exe can be found by XEmacs
- ESS[S]: ess-toggle-S-assign-key is slightly changed; in
particular, the default
ess-assign-key
is now C-x =.
- ESS[R]: M-x R-site-search is a new (slightly experimental)
utility similar to R's
RSiteSearch(..)
but with the advantage of
using Emacs' preferred browser, see browse-url-browser-function
Changes/New Features in 5.3.0:
- ESS[BUGS]: sanely re-format statistical output, .bog,
from scientific notation to numbers rounded with 4 decimal places
with M-x ess-bugs-sci-round-to-4-dp.
- The keys for navigating among section headings in help buffers
worked, but only for one language per session; they should now work for
multiple languages. (They were also broken on Windows machines.)
- ESS[S] long standing buglets in the internal logic for loading
lisp code on Windows. Particularly fixed behavior in help mode with S-plus
GUI.
- New variable,
ess-use-inferior-program-name-in-buffer-name
,
which enables using the executable name instead of the dialect name for
R. Feature request.
- ESS[S] ess-execute-screen-options
now also works correctly when there is more than one window *side-by-side*
in the same frame and runs in the correct buffer also when there is more
than one S buffer.
- iESS[S] new functions
ess-eval-paragraph-and-step
and
ess-eval-function-or-paragraph-and-step
are bound to keys
C-c C-p and C-c C-c respectively and to the menu in
ESS-mode; also bound in the help mode (for evaluating examples).
- ESS[S] new function
ess-toggle-S-assign-key
allows to
assign the “ <- ” insertion to an arbitrary key.
Changes/New Features in 5.2.12:
- ESS[SAS]: M-; fixed, but the XEmacs function
comment-dwim
may be broken, if so, use M-x comment-region and M-x
uncomment-region instead; only valid PROCs are fontified which is very
helpful finding syntax errors (currently supported: BASE, ETS, FSP, GRAPH,
IML, INSIGHT and STAT); the “feature” where F-keys take you to an
empty buffer when the requested destination is a file that does not exist
has been fixed, now the request results in a no-op.
Further, sas-mode now also works in simple terminals.
- Rterm/Cygwin combination works under Microsoft Windows.
- ESS[R]: internal calls use baseenv() instead of NULL and
define 'baseenv' where needed.
- New experimental support for installing ESS. See the file
lisp/ess-install.el.
Changes/New Features in 5.2.11:
- ESS Info entry and dir handled more effectively for GNU Emacs users
- ESS[SAS]: temporary files created for batch submission of a
region are now named based on the current file; see
ess-sas-file-root
for details; all lag
and dif
functions now fontified correctly
- iESS[SAS]: fixed a few nagging bugs, however, still does not appear to
work at this time; please let us know if you have any ideas.
- ESS[S]: Support for running other versions of Splus has been
added for unix. Two new variables,
ess-s-versions
and
ess-s-versions-list
, are used to tell ESS what other versions of
Splus you would like to run.
Changes/New Features in 5.2.10:
- ESS[R]: ess-r-versions can no longer be customized (since the
customization was not taking effect unless customizations were loaded
before ESS). Its value has been changed so that it will also find R
executables beginning “R-devel” and “R-patched”. If you wish to
change this variable, it must be set in your .emacs before ESS is
loaded.
- Installation with GNU Make enhanced: unix and unix-like
operating systems will now be able to install ESS for all
users in either a GNU Emacs site-lisp or an XEmacs package
configuration by editing lisp/ess-site.el and Makeconf
accordingly, then issuing
make install
- ESS[S]: Filename completion (inside strings) now also works in
XEmacs for R and S-plus.
Changes/New Features in 5.2.9:
- ESS[R] for Windows: the \ directory character bug
with respect to ess-load-file has been eradicated.
- iESS[SAS]: C-c C-r and C-c C-b once again
work as intended and documented.
- ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive.
- ESS[S]: Imenu now also shows setAs(), etc.
- ESS[R]: R function pattern enhanced with underlying code such that
M-C-a (
ess-beginning-of-function
) etc now work for many more
cases, including S4 method definitions.
- iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1).
- ESS[R]: Improved detection of bogus help buffers: valid help
buffers containing with the string “no documentation”(e.g. contour)
were being treated as bogus.
- ESS[R]: In R help buffers, if
options("help.try.all.packages" =
TRUE)
then ?rlm
will list which packages rlm is defined in. This help
buffer is not bogus, but instead is now relabelled “*help[R](rlm in
packages)*”.
- ESS[STA]: add “//” as comment starting character to syntax-table.
Changes/New Features in 5.2.8:
- iESS: [Tab] completes file names “inside string” as in
earlier (<= 5.2.3) ESS versions.
Changes/New Features in 5.2.7:
- If you use Custom to change the variable ess-toolbar-items,
the new toolbar is used in all subsequent ESS buffers.
- ESS[SAS]: new feature: if ess-sas-log-max >0 and
your .log grows to more than ess-sas-log-max bytes, just
the first ess-sas-log-max bytes are refreshed; this is helpful when your .sas program
generates lots of error messages and gets too big for emacs to display
- ESS[R/S]: M-; in R/S editing modes will now indent with
either one or two hashes depending on context.
- ESS[R]: David Whiting's Sweave extensions (to 'noweb')
are now available (from ess-swv.el loaded by default).
Changes/New Features in 5.2.6:
- Removed non-ASCII characters in a few files.
- ESS[R]: now works better when UTF-8 locale is active; in
particular, you get correct directional quotes in R's startup message
for R-devel (unstable development version of R 2.1.0) when using
environment variables LANGUAGE=en@quot LC_ALL=en_US.UTF-8
- ESS[SAS]: toggling of .log mode improved (F10); toggling of
.lst mode now also available (C-F10); killing all buffers associated
with .sas program no longer bound to C-F10 since its a bit overzealous.
- S-Plus 7 for Windows is now recognized.
- ESS[S] (incl. R): in auto-fill mode, strings are not wrapped anymore.
- ESS[S] (incl. R): font-lock now correctly differs between R and S,
e.g., for "_"; both now fontify warning(.) and S does terminate() additionally.
- Support for `bell' aka `beep' aka `ding' aka `alarm' in all inferior
modes: When \a is output “to the the console” at the beginning of a line,
the bell is rung.
Changes/New Features in 5.2.5:
- ESS[R]: C-c C-q or `Quit S' from the menu now should work
(again and less klunkily) and do not append `-exited' to the
buffer name. Further, the behavior of
(ess-cleanup)
, called from
ess-quit, now depends on the new customizable variable
ess-S-quit-kill-buffers-p
which defaults to nil
.
Consequently, the question “Delete all buffers associated
with ..?” will not be asked anymore by default.
- ESS[SAS] – ess-ebcdic-to-ascii-search-and-replace will now work
with the
recode
application as well which is available on many platforms
- ESS[S] (incl. R): Name completion for slots of S4 objects now works!
Changes/New Features in 5.2.4:
- The documentation now includes an overview of how to use the emacs
TAGS facility for S functions. (The distribution also used to contain a
directory etc/other/Tags where a ~1990 version of etags.c was
distributed; this is no longer relevant and so has been deleted.)
- ESS[SAS] – When you are working with EBCDIC files on an ASCII
platform, .log NOTEs may display as gibberish since the EBCDIC
characters are not converted to ASCII prior to their display. So,
the function ess-ebcdic-to-ascii-search-and-replace is provided for
convenience and is bound to C-F11. This function requires the
dd
command (only available on unix or unix-like platforms).
- ESS: Completion of object names is now always done dynamically rather
than allowing the option of using a pre-computed database (by
ess-create-object-name-db
) since modern computers seem fast
enough for dynamic completion. (We expect few users, if any, have
been using the pre-computed database method.)
- ESS: object completion in iESS buffers running on Windows was
very slow (for GNU Emacs, but not XEmacs) and has now been fixed.
Further, it was more or less broken for all versions of S-plus 6.x,
and has been fixed to work everywhere but with the Windows' GUI of
S-plus. The list of objects now shows unique names also when an
object appears more than once in the search path.
- ESS[R]: Completion of object names now also includes those
starting with “.”.
Changes/New Features in 5.2.3:
- ESS: When new inferior ESS processes are created, by default they
will replace the current buffer (this restores behavior from pre
5.2.0). If you wish new ESS processes to start in another window of the
current frame, set inferior-ess-same-window to nil.
- New variables inferior-Splus-args and inferior-R-args provide a
way to pass command line arguments to starting S and R processes.
Changes/New Features in 5.2.2:
- bug-fixes for 5.2.1 (require 'executable), html docs, etc.
- ess-lisp-directory/../doc/info added to Info-directory-list
if ess-info not found by info
- ESS[R]: If you have other versions of R on your
exec-path, such as "R-1.8.1" with Unix or "rw1081" with Windows,
ESS will find them and create appropriate functions, such as
M-x R-1.8.1 or M-x rw1081, for calling them.
By default only Unix programs beginning "R-1" and
"R-2" and Windows programs parallel to the
version of R in your exec-path will be found,
but see ess-r-versions and ess-rterm-versions for ways to find other
versions of R.
- ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and "rw1081" on
Windows, are added to the
"ESS / Start Process / Other" menu.
- ESS[S]: If you have other versions of S-Plus on your Windows computer,
such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and create appropriate
functions, such as M-x splus61, for calling the console version (Sqpe)
inside an emacs buffer. By default only
programs installed in the default location will be found, but see
ess-SHOME-versions for ways to find other versions of S-Plus.
- ESS[S]: Other versions of Sqpe on Windows, such as "splus61",
are added to the
"ESS / Start Process / Other" menu.
- ESS[R]: (bug fix) ess-quit (bound to C-c C-q) should now quit the
inferior R process, when issued from either the inferior buffer, or from
a .R buffer.
Changes/New Features in 5.2.1:
- ESS[S] (R and S-plus): now have toolbar support
with icons to evaluate code in the inferior process or to switch
there. This code is experimental and likely to change as XEmacs/Emacs
issues get resolved. The toolbar should be enabled if your Emacs
displays images, but can be disabled with the variable ess-use-toolbar.
Thanks to David Smith from Insightful for the S-plus logo.
- ESS[SAS]: ess-sas-graph-view (F12) enhanced; you can specify
external file viewers for each graphics file type via the alist
ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled
by image-mode on XEmacs, if available, otherwise by graphics
primitives as before
Changes/New Features in 5.2.0:
- ESS[BUGS]: new info documentation! now supports interactive
processing thanks to Aki Vehtari;
new architecture-independent unix support as well as support for BUGS v. 0.5
- ESS[SAS]: convert .log to .sas with ess-sas-transcript;
info documentation improved; Local Variable bug fixes;
SAS/IML statements/functions now highlighted; files edited
remotely by ange-ftp/EFS/tramp are recognized and pressing
SUBMIT opens a buffer on the remote host via the local variable
ess-sas-shell-buffer-remote-init which defaults to "ssh";
changed the definition of the variable ess-sas-edit-keys-toggle
to boolean rather than 0/1; added the function ess-electric-run-semicolon
which automatically reverse indents lines containing only "run;";
C-F1 creates MS RTF portrait from the current buffer;
C-F2 creates MS RTF landscape from the current buffer;
C-F9 opens a SAS DATASET with PROC INSIGHT rather than PROC FSVIEW;
"inferior" aliases for SAS batch: C-c C-r for submit region,
C-c C-b for submit buffer, C-c C-x for goto .log; C-c C-y for goto .lst
- ESS[S]: Pressing underscore ("_") once inserts " <- " (as before);
pressing underscore twice inserts a literal underscore. To stop this
smart behaviour, add "(ess-toggle-underscore nil)" to your .emacs after
ess-site has been loaded;
ess-dump-filename-template-proto (new name!) now can be
customized successfully (for S language dialects);
Support for Imenu has been improved; set ess-imenu-use-S to non-nil to
get an "Imenu-S" item on your menubar;
ess-help: Now using nice underlines (instead of `nuke-* ^H_')
- ESS[R]: After (require 'essa-r), M-x ess-r-var allows to load
numbers from any Emacs buffer into an existing *R* process;
M-x ess-rdired gives a “directory editor” of R objects;
fixed ess-retr-lastvalue-command, i.e. .Last.value bug
(thanks to David Brahm)
- ESS: Support for creating new window frames has been added to
ESS. Inferior ESS processes can be created in dedicated frames by
setting inferior-ess-own-frame to t. ESS help buffers can also open in
new frames; see the documentation for ess-help-own-frame for details.
(Thanks to Kevin Rodgers for contributing code.)
Changes/New Features in 5.1.24:
- The version number is now correct even inside ESS/Emacs
Changes/New Features in 5.1.23:
- Minor more Makefile clean up.
Changes/New Features in 5.1.22:
- Besides info documentation, PDF and HTML
documentation are also provided (instead of built using "make") and available
on the web as well; see ESS web page and StatLib
- Now that info documentation is available, the
README.* files are no longer supported. However, they
are still distributed for what it's worth.
- ESS is now an XEmacs package! See
XEmacs Installation HOWTO
for details (specifically, items 10-15).
- ESS[SAS]: more user-friendly enhancements for remote
SAS batch jobs with Kermit file transfers (LOG and OUTPUT
function key features now supported). Multiple shells
now supported so you can run SAS on different computers
from different buffers by setting the buffer-local variable
ess-sas-shell-buffer to unique buffer names.
- Major re-vamping of Makefile/Makeconf.
Changes/New Features in 5.1.21:
- ESS[SAS]: info documentation now available!, see
ESS->Help for SAS; F12 opens GSASFILE nearest point for viewing
either within emacs, when available, or via an external viewer;
more syntax highlighting keywords; more enhancements for remote
SAS batch jobs with Kermit; new framework for remote SAS interactive
jobs, see ess-remote
- ESS[S]: info documentation now available!, see
ESS->Help for the S family
- Makefile: tag now independent of rel; info files
made by doc/Makefile and installed in new info sub-directory
Changes/New Features in 5.1.20:
- New `options()$STERM' in the S dialects (S, S-Plus, R).
The S program can determine the environment in which it is
currently running. ESS sets the option to `iESS' or `ddeESS'
when it starts an S language process. We recommend other specific
values for S language processes that ESS does not start.
- New `ess-mouse-me' function, assigned to S-mouse-3 by default.
User may click on a word or region and then choose from the
menu to display the item, or a summary, or a plot, etc.
This feature is still under development.
- GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS),
(some from Stephen Eglen).
- XEmacs 21.x is now supported (fixed w32-using-nt bug)
- XEmacs on Win (NT) is better supported.
- Workaround for bug in Sqpe+6 (S-PLUS 6 for Win).
- should now work even when imenu is not available (for old XEmacsen).
- ESS[SAS]: XEmacs-Imenu fix; C-TAB is globalized along with your
function-key definitions, if specified; you can specify your SAS
library definitions outside of autoexec.sas for ess-sas-data-view
with SAS code placed in the variable ess-sas-data-view-libname,
also the dataset name is defaulted to the nearest permanent dataset
to point; Speedbar support now works for permanent datasets, please
ignore first./last.; new font-locking is now the default with more
improvements for font-locking PROCs, macro statements, * ; and %* ;
comments; you can toggle sas-log-mode with F10 which will font-lock
your .log (if it isn't too big); submit remote .sas files accessed
with ange-ftp, EFS or Tramp (Kermit is experimental) by setting
ess-sas-submit-method to 'sh; ess-sas-submit-command and
ess-sas-submit-command-options are buffer-local so you can have
local file variable sections at the end of your .sas files to
request different executables or specify special options and the
local file variables are re-read at submit instead of only at file
open so that if you make a change it is picked up immediately;
- ESS[BUGS]: font-lock with `in' fixed.
- for STATA: font-lock bug fixed.
- for Rd mode: C-c C-v and `switch-process' in menu.
further, C-c C-f prefix (Rd-font) for inserting or surrounding a word
by things such as \code{.}, \code{\link{.}}, \emph{.} etc.
- new functions (ess-directory-function) and (ess-narrow-to-defun)
ess-directory <-> default-directory logic (Jeff Mincy).
- Re-organized Makefile and fixed a few bugs.
Changes/New Features in 5.1.19:
- S+6 now supported (Tony Rossini (Unix) and Rich Heiberger (Windows))
- New BUGS support through ESS[BUGS] mode (Rodney Sparapani)
Templates assist you in writing .bug and .cmd code (.cmd and .log
are replaced by .bmd and .bog to avoid emacs extension collisions).
Substitution" parameters facilitate "automagic" generation of
data...in" and "init...in" filenames, "const N=" from your data
file and "monitor()/stats()" commands. Activated by pressing F12.
- Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger)
- You can change between PC and Unix, local and global SAS function-key
definitions interactively (Rich Heiberger)
- C-Submit a highlighted region to SAS batch (Rodney Sparapani)
- New and improved SAS syntax highlighting (Rodney Sparapani)
To get the new functionality, set ess-sas-run-make-regexp to nil.
Also available in .log files via F10.
- Open a permanent SAS dataset for viewing via F9 (Rodney Sparapani)
You must have the library defined in autoexec.sas for it to work.
- User-friendly defaults for `sas-program', `ess-sas-batch-pre-command'
and `ess-sas-batch-post-command' as well Customize support for these
and other ESS[SAS] variables (Rodney Sparapani)
- `ess-sas-suffix-2' now defaults to .dat via F11 (Rodney Sparapani)
- Emacs/XEmacs, Unix/Windows issues collectively handled in ess-emcs.el
- defadvice solves problem of missing *ESS* (thanks to Jeff Mincy)
- Improved manual a bit by including things that were only in `README'.
Changes/New Features in 5.1.18:
- New `ess-smart-underscore' function, now assigned to "_" by default.
Inserts `ess-S-assign' (customizable " <- "), unless inside string
and comments where plain "_" is used instead. (MM)
- Fixes for longstanding interactive SAS breakage (RMH)
Changes/New Features in 5.1.17:
- Documentation for Windows Installation (Rich Heiberger)
- removal of ess-vars, finalization of customize support (in the
sense that there is no more use of ess-vars, but that we need to
fix ess-cust) (AJ Rossini)
- Many small (and large) fixes/contributions (MMaechler)
- addition of the "S-equal" variable and provide M-x ess-add-MM-keys
a way to remap "_" to `ess-S-assign', typically " <- ", but
customizable. (MMaechler)
Changes/New Features in 5.1.16:
- BUG FIXES
- Better SAS support
Changes/New Features in 5.1.15:
Changes/New Features in 5.1.14:
- Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani)
- Customize support (for most Emacsen which support it) (AJRossini)
- ARC and ViSta support out of the box, and fixes for XLispStat (AJRossini)
Changes/New Features in 5.1.13:
- Version numbering finally all depending on the ./VERSION file,
thanks to Martin Maechler.
- Yet more fixes to SAS mode, thanks to Rich Heiberger.
Changes/New Features in 5.1.12:
- Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables,
Chuck Taylor, and others.
- More fixes to SAS mode, thanks to Rodney Sparapani
and Rich Heiberger.
Changes/New Features in 5.1.11:
- More fixes to Stata mode, thanks to
Brendan Halpin.
- fixed bugs in ESS-elsewhere, thanks to many testers
- README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks
to David Brahm.
- Fixes to SAS mode, thanks to Rodney Sparapani
Changes/New Features in 5.1.10:
- More fixes to Stata mode
- primitive generic version of ESS-elsewhere
- Small fixes to SAS/Stata.
Changes/New Features in 5.1.9:
- Stata mode works
- Literate Data Analysis using Noweb works
Changes/New Features in 5.1.8:
- Bug fixes
- R documentation mode defaults changed
Changes/New Features in 5.1.2:
- able to use inferior iESS mode to
communicate directly with a running S-Plus 4.x process using the
Microsoft DDE protocol. We use the familiar (from Unix ESS) C-c C-n
and related key sequences to send lines from the S-mode file to the
inferior S process. We continue to edit S input files in ESS[S] mode
and transcripts of previous S sessions in ESS Transcript mode. All
three modes know the S language, syntax, and indentation patterns and
provide the syntactic highlighting that eases the programming tasks.
1.4 Current Features
- Languages Supported:
- S family (S 3/4, S-PLUS 3.x/4.x/5.x/6.x/7.x, and R)
- SAS
- BUGS
- Stata
- XLispStat including Arc and ViSta
- Editing source code (S family, SAS, BUGS, XLispStat)
- Syntactic indentation and highlighting of source code
- Partial evaluation of code
- Loading and error-checking of code
- Source code revision maintenance
- Batch execution (SAS, BUGS)
- Use of imenu to provide links to appropriate functions
- Interacting with the process (S family, SAS, XLispStat)
- Command-line editing
- Searchable Command history
- Command-line completion of S family object names and file names
- Quick access to object lists and search lists
- Transcript recording
- Interface to the help system
- Transcript manipulation (S family, 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
1.5 Stability
Versions 5.3.x are meant to be release-quality versions. While some
new features are being introduced, we are cleaning up and improving
the interface. We know about some remaining documentation inconsistencies.
Patches or suggested fixes with bug reports are much appreciated!
1.6 Requirements
ESS has been tested with
- R >=0.49
- S-PLUS 3.3-4, 4.5, 5.0-1, 6.0-2, 7.0, 2000
- S4
- SAS >=6.12
- BUGS 0.5, 0.603
- Stata >=6.0
- XLispStat >=3.50
on the following platforms
- Linux (all)
- Solaris/SunOS (all)
- Microsoft Windows 95/98/NT/2000/XP (R, SPLUS 4.5/6.0-2/7.0/2000, SAS and BUGS)
- Apple Mac OS (SAS for OS 9 and R for OS X)
with the following versions of emacs
- GNU Emacs 20.3-7, 21.1, 21.3-4, 22.0.50-pretesting
- XEmacs 21.0, 21.1.13-14, 21.4.0-8, 21.4.9-131, 21.4.14-15, 21.4.17-18, 21.5.23
1.7 Getting the Latest Version
The latest released version of ESS is always available on the web at:
ESS web page or
StatLib
The latest development version of ESS is available via
https://svn.R-project.org/ESS/, the ESS Subversion repository. If
you have a Subversion client (see http://subversion.tigris.org/),
you can download the sources using:
% svn checkout https://svn.r-project.org/ESS/trunk path
which will put the ESS files into directory path. Later,
within that directory, `svn update' will bring that directory up to
date. Windows-based tools such as TortoiseSVN are also available for
downloading the files. Alternatively, you can browse the sources with a
web browser at: ESS SVN site. However, please use a subversion client instead to minimize the
load when retrieving.
If you remove other versions of ESS from your emacs load-path, you can
then use the development version by adding the following to .emacs:
(load "/path/to/ess-svn/lisp/ess-site.el")
Note that https is required, and that the SSL certificate for the
Subversion server of the R project is
Certificate information:
- Hostname: svn.r-project.org
- Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT
- Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH
- Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad
(currently, there is no “trusted certificate”). You can accept this
certificate permanently and will not be asked about it anymore.
1.8 Installation (from tar file)
We now discuss installation, which might happen under Unix or
Microsoft Windows. First, we discuss Unix installation.
See Unix installation.
For Microsoft Windows Installation please skip to the
See Microsoft Windows installation.
1.9 Unix installation
cd
to a directory where you want to install ESS, creating it if necessary.
This directory will be referred to below as ESSDIR.
- Retrieve the latest version from
ESS downloads area
to ESSDIR.
- Decompress/unarchive the files from the disribution.
Either, gunzip < ess-VERSION.tgz | tar xf -
,
or using GNU tar, tar zxf ess-VERSION.tgz
.
The tar
command will create the subdirectory ess-VERSION and install
the files there.
- Edit the file ESSDIR/ess-VERSION/lisp/ess-site.el as explained in the
comments section of that file.
- Add the line
(load "ESSDIR/ess-VERSION/lisp/ess-site")
to your user or system installation file (GNU Emacs uses
$HOME/.emacs and XEmacs uses $HOME/.xemacs/init.el for the
user initialization file. GNU Emacs uses default.el or
site-init.el and XEmacs uses site-start.el for the system
installation file).
Alternatively, if ess-site.el is in your current load-path
, then:
(require 'ess-site)
to configure emacs for ESS.
- That's it! If you are installing just a local copy of ESS for yourself,
ESS is now ready to be used. (The remaining step below is for advanced
installation.) 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 start a statistical
process within emacs, such as R, type
M-x R
.
- (OPTIONAL) READ THIS ITEM THOROUGHLY BEFORE STARTING:
If you want to place the compiled files in other locations edit the
LISPDIR
, INFODIR
and ETCDIR
entries in Section 1 of
Makeconf in the ESSDIR/ess-VERSION directory (if you are
using XEmacs, then see the XEmacs subsection in Section 1 of Makeconf).
You can compile those files by:
make all
When that completes successfully, install the compiled files:
make install
Note: ESS is no longer available as an XEmacs package. But, you can
still install ESS into the XEmacs package system by choosing the appropriate
directory for unpacking as follows:
PREFIX/lib/xemacs/site-packages on unix or
PREFIX\XEmacs\site-packages on windows
Note: ESS will work best if the XEmacs sumo tarball (all XEmacs packages combined)
has been installed. For more information on installing XEmacs packages, see
Quickstart Package Guide.
1.10 Microsoft Windows installation
For Microsoft Windows installation, please follow the next steps:
(see separate instructions above for UNIX See Unix installation.
cd
to a directory where you keep emacs lisp files, or create a
new directory (for example, c:\emacs\) to hold the distribution.
This directory will be referred to below as "the ESS distribution
directory".
- Retrieve the latest zip file (ess-VERSION.zip)
or compressed tar file ess-VERSION.tgz from
ESS downloads area and
store it in the ESS distribution directory. Be aware that http browsers
on Windows frequently change the "." and "-" characters in filenames to
other punctuation. Please change the names back to their original form.
- Extract all the files from ess-VERSION.zip or ess-VERSION.tgz
into the ESS
distribution directory as c:\emacs\ess-VERSION\.
You may use the commands unzip on the zip archive or
gunzip and tar on the tgz file.
It is possible to unpack the zip archive in Windows Explorer,
by double clicking on the folder; you should
then see a new folder called ess-VERSION. Drag that folder into
your ESS distribution directory.
- Add the line
(load "C:/emacs/ess-VERSION/lisp/ess-site")
to your emacs initialization file. (GNU Emacs uses the filename
~/.emacs and XEmacs uses the filename
~/.xemacs/init.el for the initialization file. The tilde is
recognised by emacs as your HOME directory, i.e. the value of your HOME
environment variable.) Replace
VERSION
above with the version number of ESS. Remember to use
forwardslashes /
, rather than backslashes \
, in your filename
inside emacs code files.
After saving your initialization file, ESS is now installed. Start a
new emacs and you should be ready to use ESS. For example, to edit
statistical programs, load the files with the requisite extensions
(".sas" for SAS, ".S" or "s" or "q" or "Q" for S-PLUS, ".r" or ".R" for
R, and ".lsp" for XLispStat). One further step is needed if you wish to
run statistical processes, see below.
- To run statistical processes under ESS, Windows users will need to make
sure that the directories for the software they will be using is in the
PATH environment variable. On Windows 9x, add lines similar to the
following to your c:\autoexec.bat file:
path=%PATH%;c:\progra~1\insightful\splus70\cmd
On Windows NT/2000/XP, add the directories to the PATH using the
My Computer/Control Panel/System/Advanced/Environment Variables
menu.
Note that the directory containing the program is
added to the PATH, not the program itself. One such line is needed
for each software program. Be sure to use the abbreviation
progra~1
and not the long version with embedded blanks. Use
backslashes "\
".
An alternative, for R users, is that rather than adjusting the PATH
variable, you can add the following to your emacs initialization file
(and restart emacs):
(setq inferior-R-program-name "C:/progra~1/R/R-2.2.1/bin/Rterm.exe")
This assumes that you have installed R-2.2.1 in the default location.
Change the path otherwise to point to other locations.
Windows users who place S-PLUS anywhere other than the default
location will also need to add the following three lines (properly
adjusted for their location) to their %HOME%/.emacs or
%HOME%/.xemacs/init.el file:
(setq-default inferior-S+6-program-name
"c:/progra~1/Insightful/SPLUS70/cmd/Splus")
(setq-default inferior-Sqpe+6-SHOME-name
"c:/progra~1/Insightful/SPLUS70")
(setq-default inferior-Sqpe+6-program-name
"c:/progra~1/Insightful/SPLUS70/cmd/Sqpe.exe")
The above example uses the default location of S-PLUS in
c:/progra~1/Insightful
. Please note that ESS
considers S-PLUS 6, 7, and 8 to be variants of S+6.
These users may also need to modify the emacs variable ess-SHOME-versions
to match their installation in order to get the full set of S-PLUS versions
on their machine into the ESS
menu.
To start the S-PLUS [678].x GUI from ESS under emacs:
- If you use Cygwin bash as your primary shell, then
M-x S
(or M-x S+6
).
- If you use the MSDOS prompt window as your primary shell, then
M-x S+6-msdos
You will then be
asked for a pathname ("S starting data directory?"), from which to
start the process. The prompt will propose your current directory
as the default. ESS will start the S-PLUS GUI. There will be
slight delay during which emacs is temporarily frozen. ESS will arrange for
communication with the S-PLUS GUI using the DDE protocol.
Send lines or regions
from the emacs buffer containing your S program (for example,
myfile.s) to the S-PLUS Commands Window with the
C-c C-n
or C-c C-r
keys.
(If you are still using S-PLUS 4.x or 2000,\
then use M-x S+4
or M-x S+4-msdos
.)
To start an S-PLUS [678].x session inside an emacs buffer—and
without the S-PLUS GUI:
M-x Sqpe
(or M-x Sqpe+6
).
This works with both the bash and msdos shells.
You will then be asked for a pathname ("S starting data
directory?"), from which to start the process. The prompt will
propose your current directory as the default.
You get Unix-like behavior, in particular the entire
transcript is available for emacs-style search commands.
Send lines or regions from the emacs buffer containing your S
program (for example, myfile.s) to the *S+6* buffer with the
C-c C-n
or C-c C-r
keys.
Interactive graphics are available with Sqpe by using the java
library supplied with S-PLUS 6.1 and newer releases.
Enter the commands:
library(winjava)
java.graph()
Graphs can be saved from the java.graph
device
in several formats, but not PostScript. If you
need a PostScript file you will need to open a separate
postscript
device.
(If you are still using S-PLUS 4.x or 2000, then use M-x Sqpe+4
.)
To connect to an already running S-PLUS GUI (started, for example,
from the S-PLUS icon):
M-x S+6-existing
or
M-x S+6-msdos-existing
You will then be
asked for a pathname ("S starting data directory?"), from which to
start the process. The prompt will propose your current directory
as the default. ESS will arrange for
communication with the already running S-PLUS GUI using the DDE protocol.
Send lines or regions
from the emacs buffer containing your S program (for example,
myfile.s) to the S-PLUS Commands Window with the
C-c C-n
or C-c C-r
keys.
(If you are still using S-PLUS 4.x or 2000,
then use M-x S+4-existing
or M-x S+4-msdos-existing
.)
If you wish to run R, you can start it with:
M-x R
XLispStat can not currently be run with
M-x XLS
Hopefully, this will change. However, you can still edit with
emacs, and cut and paste the results into the XLispStat
*Listener* Window under Microsoft Windows.
- That's it!
1.11 Reporting 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.
If Emacs reports an error, backtraces can help us debug the problem.
Type "M-x set-variable RET debug-on-error RET t RET". Then run the
command that causes the error and you should see a *Backtrace* buffer
containing debug information; send us that buffer.
Note that comments, suggestions, words of praise and large cash
donations are also more than welcome.
1.12 Mailing Lists
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 on Emacs and XEmacs.
- suggestions for improvements.
- announcements of new releases of ESS.
- posting small patches to ESS.
1.13 Authors