4 The ESS Developers proudly announce the release of ESS
8 Emacs Speaks Statistics (ESS) provides an intelligent, consistent
9 interface between the user and the software. ESS interfaces with
10 S-PLUS, R, SAS, BUGS and other statistical analysis packages under the
11 Unix, Microsoft Windows, and Apple Mac OS operating systems. ESS is a
12 package for the GNU Emacs and XEmacs text editors whose features ESS
13 uses to streamline the creation and use of statistical software. ESS
14 knows the syntax and grammar of statistical analysis packages and
15 provides consistent display and editing features based on that
16 knowledge. ESS assists in interactive and batch execution of
17 statements written in these statistical analysis languages.
19 ESS is freely available under the GNU General Public License (GPL).
20 Please read the file COPYING which comes with the distribution, for
21 more information about the license. For more detailed information,
22 please read the README files that come with ESS.
24 Getting the Latest Version
25 ==========================
27 The latest released version of ESS is always available on the web at:
28 ESS web page (http://ess.r-project.org) or StatLib
29 (http://lib.stat.cmu.edu/general/ESS/)
31 The latest development version of ESS is available via
32 `https://svn.R-project.org/ESS/', the ESS Subversion repository. If
33 you have a Subversion client (see `http://subversion.tigris.org/'), you
34 can download the sources using:
35 % svn checkout https://svn.r-project.org/ESS/trunk PATH
37 which will put the ESS files into directory PATH. Later, within that
38 directory, `svn update' will bring that directory up to date.
39 Windows-based tools such as TortoiseSVN are also available for
40 downloading the files. Alternatively, you can browse the sources with a
41 web browser at: ESS SVN site (https://svn.r-project.org/ESS/trunk).
42 However, please use a subversion client instead to minimize the load
45 If you remove other versions of ESS from your emacs load-path, you
46 can then use the development version by adding the following to .emacs:
48 (load "/path/to/ess-svn/lisp/ess-site.el")
50 Note that https is required, and that the SSL certificate for the
51 Subversion server of the R project is
53 Certificate information:
54 - Hostname: svn.r-project.org
55 - Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT
56 - Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH
57 - Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad
59 (currently, there is no "trusted certificate"). You can accept this
60 certificate permanently and will not be asked about it anymore.
65 * Languages Supported:
66 * S family (S 3/4, S-PLUS 3.x/4.x/5.x/6.x/7.x, and R)
74 * XLispStat including Arc and ViSta
76 * Editing source code (S family, SAS, BUGS, XLispStat)
77 * Syntactic indentation and highlighting of source code
79 * Partial evaluation of code
81 * Loading and error-checking of code
83 * Source code revision maintenance
85 * Batch execution (SAS, BUGS)
87 * Use of imenu to provide links to appropriate functions
89 * Interacting with the process (S family, SAS, XLispStat)
90 * Command-line editing
92 * Searchable Command history
94 * Command-line completion of S family object names and file
97 * Quick access to object lists and search lists
99 * Transcript recording
101 * Interface to the help system
103 * Transcript manipulation (S family, XLispStat)
104 * Recording and saving transcript files
106 * Manipulating and editing saved transcripts
108 * Re-evaluating commands from transcript files
110 * Help File Editing (R)
111 * Syntactic indentation and highlighting of source code.
113 * Sending Examples to running ESS process.
120 ESS has been tested with
122 * S-PLUS 3.3-4, 4.5, 2000, 5.0-1, 6.0-2, 7.0
136 on the following platforms
140 * Solaris/SunOS (all)
142 * Microsoft Windows 95/98/NT/2000/XP (SPLUS 4.5/2000/6.*, R, SAS and
145 * Apple Mac OS (SAS for OS 9 and R for OS X)
147 with the following versions of emacs
149 * GNU Emacs 20.3-7, 21.1, 21.3, 21.4
151 * XEmacs 21.0, 21.1.13-14, 21.4.0-8, 21.4.9-13(1), 21.4.14-15,
154 ---------- Footnotes ----------
156 (1) require the files.el patch to revert-buffer for the Local
157 Variables updating problem
162 Versions 5.2.x are meant to be release-quality versions. While some
163 new features are being introduced, we are cleaning up and improving the
164 interface. We know about some remaining documentation inconsistencies.
165 Patches or suggested fixes with bug reports are much appreciated!
170 There is a mailing list for discussions and announcements relating to
171 ESS. Join the list by sending an e-mail with "subscribe ess-help" (or
172 "help") in the body to <ess-help-request@stat.math.ethz.ch>;
173 contributions to the list may be mailed to
174 <ess-help@stat.math.ethz.ch>. Rest assured, this is a fairly
175 low-volume mailing list.
177 The purposes of the mailing list include
179 * helping users of ESS to get along with it.
181 * discussing aspects of using ESS on Emacs and XEmacs.
183 * suggestions for improvements.
185 * announcements of new releases of ESS.
187 * posting small patches to ESS.
192 Please send bug reports, suggestions etc. to
194 <ESS-bugs@stat.math.ethz.ch>
196 The easiest way to do this is within Emacs by typing
198 `M-x ess-submit-bug-report'
200 This also gives the maintainers valuable information about your
201 installation which may help us to identify or even fix the bug.
203 If Emacs reports an error, backtraces can help us debug the problem.
204 Type "M-x set-variable RET debug-on-error RET t RET". Then run the
205 command that causes the error and you should see a *Backtrace* buffer
206 containing debug information; send us that buffer.
208 Note that comments, suggestions, words of praise and large cash
209 donations are also more than welcome.
214 * A.J. Rossini (mailto:blindglobe@gmail.com)
216 * Richard M. Heiberger (mailto:rmh@temple.edu)
218 * Kurt Hornik (mailto:Kurt.Hornik@R-project.org)
220 * Martin Maechler (mailto:maechler@stat.math.ethz.ch)
222 * Rodney A. Sparapani (mailto:rsparapa@mcw.edu)
224 * Stephen Eglen (mailto:stephen@gnu.org)
229 ESS is free software; you can redistribute it and/or modify it under
230 the terms of the GNU General Public License as published by the Free
231 Software Foundation; either version 2, or (at your option) any later
234 ESS is distributed in the hope that it will be useful, but WITHOUT
235 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
236 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
237 in the file COPYING in the same directory as this file for more details.
242 Changes/New Features in 5.2.7:
243 * If you use Custom to change the variable ess-toolbar-items, the
244 new toolbar is used in all subsequent ESS buffers.
246 * ESS[SAS]: new feature: if ess-sas-log-max >0 and your .log grows
247 to more than ess-sas-log-max bytes, just the first ess-sas-log-max
248 bytes are refreshed; this is helpful when your .sas program
249 generates lots of error messages and gets too big for emacs to
252 * ESS[R/S]: `M-;' in R/S editing modes will now indent with either
253 one or two hashes depending on context.
255 * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are now
256 available (from ess-swv.el loaded by default).
258 Changes/New Features in 5.2.6:
259 * Removed non-ASCII characters in a few files.
261 * ESS[R]: now works better when UTF-8 locale is active; in
262 particular, you get correct directional quotes in R's startup
263 message for R-devel (unstable development version of R 2.1.0)
264 when using environment variables LANGUAGE=en@quot
267 * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of .lst
268 mode now also available (`C-F10'); killing all buffers associated
269 with .sas program no longer bound to `C-F10' since its a bit
270 overzealous; EXPERIMENTAL new feature: if your .log grows to more
271 than 2.5MB, just the first 2.5MB are refreshed; this is helpful
272 when your .sas program generates lots of error messages and gets
273 too big for emacs to display; the truncation size is controlled by
274 the variable ess-sas-log-max and defaults to 2500000.
276 * S-Plus 7 for Windows is now recognized.
278 * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped
281 * ESS[S] (incl. R): font-lock now correctly differs between R and S,
282 e.g., for "_"; both now fontify warning(.) and S does terminate()
285 * Support for `bell' aka `beep' aka `ding' aka `alarm' in all
286 inferior modes: When \a is output "to the the console" at the
287 beginning of a line, the bell is rung.
289 Changes/New Features in 5.2.5:
290 * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work (again
291 and less klunkily) and do not append `-exited' to the buffer name.
292 Further, the behavior of `(ess-cleanup)', called from ess-quit,
293 now depends on the new customizable variable
294 `ess-S-quit-kill-buffers-p' which defaults to `nil'.
295 Consequently, the question _"Delete all buffers associated with
296 ..?"_ will not be asked anymore by default.
298 * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now work
299 with the `recode' application as well which is available on many
302 * ESS[S] (incl. R): Name completion for slots of S4 objects now
305 Changes/New Features in 5.2.4:
306 * The documentation now includes an overview of how to use the emacs
307 TAGS facility for S functions. (The distribution also used to
308 contain a directory `etc/other/Tags' where a ~1990 version of
309 `etags.c' was distributed; this is no longer relevant and so has
312 * ESS[SAS] - When you are working with EBCDIC files on an ASCII
313 platform, .log NOTEs may display as gibberish since the EBCDIC
314 characters are not converted to ASCII prior to their display. So,
315 the function ess-ebcdic-to-ascii-search-and-replace is provided for
316 convenience and is bound to `C-F11'. This function requires the
317 `dd' command (only available on unix or unix-like platforms).
319 * ESS: Completion of object names is now always done dynamically
320 rather than allowing the option of using a pre-computed database
321 (by `ess-create-object-name-db') since modern computers seem fast
322 enough for dynamic completion. (We expect few users, if any, have
323 been using the pre-computed database method.)
325 * ESS: object completion in iESS buffers running on Windows was very
326 slow (for GNU Emacs, but not XEmacs) and has now been fixed.
327 Further, it was more or less broken for all versions of S-plus 6.x,
328 and has been fixed to work everywhere but with the Windows' GUI of
329 S-plus. The list of objects now shows unique names also when an
330 object appears more than once in the search path.
332 * ESS[R]: Completion of object names now also includes those
335 Changes/New Features in 5.2.3:
336 * ESS: When new inferior ESS processes are created, by default they
337 will replace the current buffer (this restores behavior from pre
338 5.2.0). If you wish new ESS processes to start in another window
339 of the current frame, set inferior-ess-same-window to nil.
341 * New variables inferior-Splus-args and inferior-R-args provide a
342 way to pass command line arguments to starting S and R processes.
344 Changes/New Features in 5.2.2:
345 * bug-fixes for 5.2.1 (require 'executable), html docs, etc.
347 * ess-lisp-directory/../doc/info added to Info-directory-list if
348 ess-info not found by info
350 * ESS[R]: If you have other versions of R on your exec-path, such as
351 "R-1.8.1" with Unix or "rw1081" with Windows, ESS will find them
352 and create appropriate functions, such as `M-x R-1.8.1' or `M-x
353 rw1081', for calling them. By default only Unix programs
354 beginning "R-1" and "R-2" and Windows programs parallel to the
355 version of R in your exec-path will be found, but see
356 ess-r-versions and ess-rterm-versions for ways to find other
359 * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and
360 "rw1081" on Windows, are added to the "ESS / Start Process /
363 * ESS[S]: If you have other versions of S-Plus on your Windows
364 computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and
365 create appropriate functions, such as `M-x splus61', for calling
366 the console version (Sqpe) inside an emacs buffer. By default only
367 programs installed in the default location will be found, but see
368 ess-SHOME-versions for ways to find other versions of S-Plus.
370 * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", are
371 added to the "ESS / Start Process / Other" menu.
373 * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now quit the
374 inferior R process, when issued from either the inferior buffer,
377 Changes/New Features in 5.2.1:
378 * ESS[S] (R and S-plus): now have toolbar support with icons to
379 evaluate code in the inferior process or to switch there. This
380 code is experimental and likely to change as XEmacs/Emacs issues
381 get resolved. The toolbar should be enabled if your Emacs displays
382 images, but can be disabled with the variable ess-use-toolbar.
383 Thanks to David Smith from Insightful for the S-plus logo.
385 * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify
386 external file viewers for each graphics file type via the alist
387 ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled by
388 image-mode on XEmacs, if available, otherwise by graphics
391 Changes/New Features in 5.2.0:
392 * ESS[BUGS]: new info documentation! now supports interactive
393 processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); new
394 architecture-independent unix support as well as support for BUGS
397 * ESS[SAS]: convert .log to .sas with ess-sas-transcript; info
398 documentation improved; Local Variable bug fixes; SAS/IML
399 statements/functions now highlighted; files edited remotely by
400 ange-ftp/EFS/tramp are recognized and pressing SUBMIT opens a
401 buffer on the remote host via the local variable
402 ess-sas-shell-buffer-remote-init which defaults to "ssh"; changed
403 the definition of the variable ess-sas-edit-keys-toggle to boolean
404 rather than 0/1; added the function ess-electric-run-semicolon
405 which automatically reverse indents lines containing only "run;";
406 `C-F1' creates MS RTF portrait from the current buffer; `C-F2'
407 creates MS RTF landscape from the current buffer; `C-F9' opens a
408 SAS DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior"
409 aliases for SAS batch: `C-c C-r' for submit region, `C-c C-b' for
410 submit buffer, `C-c C-x' for goto .log; `C-c C-y' for goto .lst
412 * ESS[S]: Pressing underscore ("_") once inserts " <- " (as before);
413 pressing underscore twice inserts a literal underscore. To stop
414 this smart behaviour, add "(ess-smart-underscore nil)" to your
415 .emacs after ess-site has been loaded;
416 ess-dump-filename-template-proto (new name!) now can be customized
417 successfully (for S language dialects); Support for Imenu has been
418 improved; set ess-imenu-use-S to non-nil to get an "Imenu-S" item
419 on your menubar; ess-help: Now using nice underlines (instead of
422 * ESS[R]: After (require 'essa-r), `M-x ess-r-var' allows to load
423 numbers from any Emacs buffer into an existing *R* process; `M-x
424 ess-rdired' gives a "directory editor" of R objects; fixed
425 ess-retr-lastvalue-command, i.e. .Last.value bug (thanks to David
428 * ESS: Support for creating new window frames has been added to ESS.
429 Inferior ESS processes can be created in dedicated frames by
430 setting inferior-ess-own-frame to t. ESS help buffers can also
431 open in new frames; see the documentation for ess-help-own-frame
432 for details. (Thanks to Kevin Rodgers for contributing code.)
434 Changes/New Features in 5.1.24:
435 * The version number is now correct even inside ESS/Emacs
437 Changes/New Features in 5.1.23:
438 * Minor more Makefile clean up.
440 Changes/New Features in 5.1.22:
441 * Besides info documentation, PDF and HTML documentation are also
442 provided (instead of built using "make") and available on the web
443 as well; see ESS web page (http://ess.r-project.org/) and StatLib
444 (http://lib.stat.cmu.edu/general/ESS/doc)
446 * Now that info documentation is available, the README.* files are
447 no longer supported. However, they are still distributed for what
450 * ESS is now an XEmacs package! See XEmacs Installation HOWTO
451 (http://www.xemacs.org/Install/index.html) for details
452 (specifically, items 10-15).
454 * ESS[SAS]: more user-friendly enhancements for remote SAS batch
455 jobs with Kermit file transfers (LOG and OUTPUT function key
456 features now supported). Multiple shells now supported so you can
457 run SAS on different computers from different buffers by setting
458 the buffer-local variable ess-sas-shell-buffer to unique buffer
461 * Major re-vamping of Makefile/Makeconf.
463 Changes/New Features in 5.1.21:
464 * ESS[SAS]: info documentation now available!, see ESS->Help for
465 SAS; `F12' opens GSASFILE nearest point for viewing either within
466 emacs, when available, or via an external viewer; more syntax
467 highlighting keywords; more enhancements for remote SAS batch jobs
468 with Kermit; new framework for remote SAS interactive jobs, see
471 * ESS[S]: info documentation now available!, see ESS->Help for the S
474 * Makefile: tag now independent of rel; info files made by
475 doc/Makefile and installed in new info sub-directory
477 Changes/New Features in 5.1.20:
478 * New `options()$STERM' in the S dialects (S, S-Plus, R). The S
479 program can determine the environment in which it is currently
480 running. ESS sets the option to `iESS' or `ddeESS' when it starts
481 an S language process. We recommend other specific values for S
482 language processes that ESS does not start.
484 * New `ess-mouse-me' function, assigned to S-mouse-3 by default.
485 User may click on a word or region and then choose from the menu
486 to display the item, or a summary, or a plot, etc. This feature
487 is still under development.
489 * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS),
490 (some from Stephen Eglen).
492 * XEmacs 21.x is now supported (fixed w32-using-nt bug)
494 * XEmacs on Win (NT) is better supported.
496 * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win).
498 * should now work even when imenu is not available (for old
501 * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with your
502 function-key definitions, if specified; you can specify your SAS
503 library definitions outside of autoexec.sas for ess-sas-data-view
504 with SAS code placed in the variable ess-sas-data-view-libname,
505 also the dataset name is defaulted to the nearest permanent dataset
506 to point; Speedbar support now works for permanent datasets, please
507 ignore first./last.; new font-locking is now the default with more
508 improvements for font-locking PROCs, macro statements, * ; and %* ;
509 comments; you can toggle sas-log-mode with `F10' which will
510 font-lock your .log (if it isn't too big); submit remote .sas
511 files accessed with ange-ftp, EFS or Tramp (Kermit is
512 experimental) by setting ess-sas-submit-method to 'sh;
513 ess-sas-submit-command and ess-sas-submit-command-options are
514 buffer-local so you can have local file variable sections at the
515 end of your .sas files to request different executables or specify
516 special options and the local file variables are re-read at submit
517 instead of only at file open so that if you make a change it is
518 picked up immediately;
520 * ESS[BUGS]: font-lock with `in' fixed.
522 * for STATA: font-lock bug fixed.
524 * for Rd mode: `C-c C-v' and `switch-process' in menu. further,
525 `C-c C-f' prefix (Rd-font) for inserting or surrounding a word by
526 things such as \code{.}, \code{\link{.}}, \emph{.} etc.
528 * new functions (ess-directory-function) and (ess-narrow-to-defun)
529 ess-directory <-> default-directory logic (Jeff Mincy).
531 * Re-organized Makefile and fixed a few bugs.
533 Changes/New Features in 5.1.19:
534 * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger
537 * New BUGS support through ESS[BUGS] mode (Rodney Sparapani)
538 Templates assist you in writing .bug and .cmd code (.cmd and .log
539 are replaced by .bmd and .bog to avoid emacs extension collisions).
540 Substitution" parameters facilitate "automagic" generation of
541 data...in" and "init...in" filenames, "const N=" from your data
542 file and "monitor()/stats()" commands. Activated by pressing
545 * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger)
547 * You can change between PC and Unix, local and global SAS
548 function-key definitions interactively (Rich Heiberger)
550 * `C-Submit' a highlighted region to SAS batch (Rodney Sparapani)
552 * New and improved SAS syntax highlighting (Rodney Sparapani) To get
553 the new functionality, set ess-sas-run-make-regexp to nil. Also
554 available in .log files via `F10'.
556 * Open a permanent SAS dataset for viewing via `F9' (Rodney
557 Sparapani) You must have the library defined in autoexec.sas for
560 * User-friendly defaults for `sas-program',
561 `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' as
562 well Customize support for these and other ESS[SAS] variables
565 * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney
568 * Emacs/XEmacs, Unix/Windows issues collectively handled in
571 * defadvice solves problem of missing *ESS* (thanks to Jeff Mincy)
573 * Improved manual a bit by including things that were only in
576 Changes/New Features in 5.1.18:
577 * New `ess-smart-underscore' function, now assigned to "_" by
578 default. Inserts `ess-S-assign' (customizable " <- "), unless
579 inside string and comments where plain "_" is used instead. (MM)
581 * Fixes for longstanding interactive SAS breakage (RMH)
583 Changes/New Features in 5.1.17:
584 * Documentation for Windows Installation (Rich Heiberger)
586 * removal of ess-vars, finalization of customize support (in the
587 sense that there is no more use of ess-vars, but that we need to
588 fix ess-cust) (AJ Rossini)
590 * Many small (and large) fixes/contributions (MMaechler)
592 * addition of the "S-equal" variable and provide `M-x
593 ess-add-MM-keys' a way to remap "_" to `ess-S-assign', typically "
594 <- ", but customizable. (MMaechler)
596 Changes/New Features in 5.1.16:
601 Changes/New Features in 5.1.15:
604 Changes/New Features in 5.1.14:
605 * Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani)
607 * Customize support (for most Emacsen which support it) (AJRossini)
609 * ARC and ViSta support out of the box, and fixes for XLispStat
612 Changes/New Features in 5.1.13:
613 * Version numbering finally all depending on the ./VERSION file,
614 thanks to Martin Maechler.
616 * Yet more fixes to SAS mode, thanks to Rich Heiberger.
618 Changes/New Features in 5.1.12:
619 * Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables,
620 Chuck Taylor, and others.
622 * More fixes to SAS mode, thanks to Rodney Sparapani and Rich
625 Changes/New Features in 5.1.11:
626 * More fixes to Stata mode, thanks to Brendan Halpin
627 (mailto:brendan@essex.ac.uk).
629 * fixed bugs in ESS-elsewhere, thanks to many testers
631 * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks
632 to David Brahm (mailto:brahm@alum.mit.edu).
634 * Fixes to SAS mode, thanks to Rodney Sparapani
636 Changes/New Features in 5.1.10:
637 * More fixes to Stata mode
639 * primitive generic version of ESS-elsewhere
641 * Small fixes to SAS/Stata.
643 Changes/New Features in 5.1.9:
646 * Literate Data Analysis using Noweb works
648 Changes/New Features in 5.1.8:
651 * R documentation mode defaults changed
653 Changes/New Features in 5.1.2:
654 * able to use inferior iESS mode to communicate directly with a
655 running S-Plus 4.x process using the Microsoft DDE protocol. We
656 use the familiar (from Unix ESS) `C-c C-n' and related key
657 sequences to send lines from the S-mode file to the inferior S
658 process. We continue to edit S input files in ESS[S] mode and
659 transcripts of previous S sessions in ESS Transcript mode. All
660 three modes know the S language, syntax, and indentation patterns
661 and provide the syntactic highlighting that eases the programming