User manual
Chapter 1: Introduction to ESS 16
• ESS: new functions to manipulate process plists: ess-process-get and ess-process-
set.
• ESS: Internal process waiting mechanism was completely rewritten. ESS no more relies
on prompt regular expressions for the prompt detection. The only requirement on
the primary process prompt is to end in > . This could be overwritten by setting
inferor-ess-primary-prompt.
• ESS[S], notably R: Saved command history: ess-history-file now accepts t (default),
nil, or a file name. By setting it to nil no command line history is saved anymore.
ess-history-directory now allows to have the history all saved in one “central” file.
• ESS[R]: more Roxygen improvements.
• ESS[R]: C-c . to set (indentation) style.
• ESS[R]: Functions with non-standard names (for example ’aaa-bbb:cc’) are properly
handled by font-lock and evaluation routines.
• ESS[R]:Several regexp bugs (described in etc/R-ESS-bugs.el) were fixed in ess-get-
words-from-vector and ess-command.
1.3 Authors of and contributors to ESS
The ESS environment is built on the open-source projects of many contributors, dating
back to 1989 where Doug Bates and Ed Kademan wrote S-mode to edit S and Splus files in
GNU Emacs. Frank Ritter and Mike Meyer added features, creating version 2. Meyer and
David Smith made further contributions, creating version 3. For version 4, David Smith
provided significant enhancements to allow for powerful process interaction.
John Sall wrote GNU Emacs macros for SAS source code around 1990. Tom Cook added
functions to submit jobs, review listing and log files, and produce basic views of a dataset,
thus creating a SAS-mode which was distributed in 1994.
In 1994, A.J. Rossini extended S-mode to support XEmacs. Together with extensions
written by Martin Maechler, this became version 4.7 and supported S, Splus, and R. In
1995, Rossini extended SAS-mode to work with XEmacs.
In 1997, Rossini merged S-mode and SAS-mode into a single Emacs package for statistical
programming; the product of this marriage was called ESS version 5. Richard M. Heiberger
designed the inferior mode for interactive SAS and SAS-mode was further integrated into
ESS. Thomas Lumley’s Stata mode, written around 1996, was also folded into ESS. More
changes were made to support additional statistical languages, particularly XLispStat.
ESS initially worked only with Unix statistics packages that used standard-input and
standard-output for both the command-line interface and batch processing. ESS could
not communicate with statistical packages that did not use this protocol. This changed in
1998 when Brian Ripley demonstrated use of the Windows Dynamic Data Exchange (DDE)
protocol with ESS. Heiberger then used DDE to provide interactive interfaces for Windows
versions of Splus. In 1999, Rodney A. Sparapani and Heiberger implemented SAS batch for
ESS relying on files, rather than standard-input/standard-output, for Unix, Windows and
Mac. In 2001, Sparapani added BUGS batch file processing to ESS for Unix and Windows.
• The multiple process code, and the idea for ess-eval-line-and-next-line are by
Rod Ball.
• Thanks to Doug Bates for many useful suggestions.










