Oops, when ess-ask-for-ess-directory is non-nil needing change too.
[ess.git] / README
blobe033730ec3f495cfc0d6ec4975f9d9c37a8196bf
1 1 General Information: README
2 *****************************
4 This is the README file for the distribution of ESS version
6    5.3.1
8    ESS is a GNU Emacs and XEmacs mode for interactive statistical
9 programming and data analysis.  Languages supported: the S family (S
10 3/4, S-PLUS 3/4/5/6/7, and R), SAS, XLispStat, Stata and BUGS.
11 Installation help can be found in sections for both Unix and Windows.
12 For INSTALLATION, see way below.
14 ESS grew out of the desire for bug fixes and extensions to S-mode and
15 SAS-mode as well as a consistent union of their features in one package.
17    The current development team is led by Martin Maechler since August
18 2004. Former project leader A.J. (Tony) Rossini
19 (<rossini@blindglobe.net>) did the initial port to XEmacs and has been
20 the primary coder.  Martin Maechler (<maechler@stat.math.ethz.ch>) and
21 Kurt Hornik (<Kurt.Hornik@R-project.org>) have assisted with S-PLUS,
22 S4, R, and XLispStat.  Stephen Eglen (<stephen@gnu.org>) has worked
23 mostly on R support.  Richard M. Heiberger (<rmh@temple.edu>) has
24 assisted with S-PLUS and S4 development for Windows.  Richard and
25 Rodney A. Sparapani (<rsparapa@mcw.edu>) have done much of the work
26 implementing interactive SAS (iESS[SAS]) and batch SAS (ESS[SAS])
27 support.
29    We are grateful to the previous developers of S-mode (Doug Bates, Ed
30 Kademan, Frank Ritter, David M. Smith), SAS-mode (Tom Cook) and
31 Stata-mode (Thomas Lumley).
33 1.1 License
34 ===========
36 ESS is free software; you can redistribute it and/or modify it under
37 the terms of the GNU General Public License as published by the Free
38 Software Foundation; either version 2, or (at your option) any later
39 version.
41    ESS is distributed in the hope that it will be useful, but WITHOUT
42 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
43 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
44 in the file COPYING in the same directory as this file for more details.
46 1.2 Starting an ESS process
47 ===========================
49 To start an S session on Unix or on Windows when you use the Cygwin
50 bash shell, simply type `M-x S RET'.
52    To start an S session on Windows when you use the MSDOS prompt
53 shell, simply type `M-x S+6-msdos RET'.
55 1.3 New Features
56 ================
58 Changes/New Features in 5.3.1:
59    * See the docs for 2 ways to install ESS for XEmacs
60        1. by uncommenting the XEmacs part of             Section 1 of
61           `Makeconf' and performing `make install'
63        2. by unpacking either             `ess-5.3.1.tgz' or
64           `ess-5.3.1.zip' into
65           `PREFIX/lib/xemacs/site-packages' on unix or
66           `PREFIX\XEmacs\site-packages' on windows
68    * ESS[R]: fixed bugs so that Rterm.exe can be found by XEmacs
70    * ESS[S]: `ess-toggle-S-assign-key' is slightly changed; in
71      particular, the default `ess-assign-key' is now `C-x ='.
73    * ESS[R]: `M-x R-site-search' is a new (slightly experimental)
74      utility similar to R's `RSiteSearch(..)' but with the advantage of
75      using Emacs' preferred browser, see `browse-url-browser-function'
77    Changes/New Features in 5.3.0:
78    * ESS[BUGS]: sanely re-format statistical output, `.bog', from
79      scientific notation to numbers rounded with 4 decimal places with
80      `M-x ess-bugs-sci-round-to-4-dp'.
82    * The keys for navigating among section headings in help buffers
83      worked, but only for one language per session; they should now
84      work for multiple languages.  (They were also broken on Windows
85      machines.)
87    * ESS[S] long standing buglets in the internal logic for loading
88      lisp code on Windows.  Particularly fixed behavior in help mode
89      with S-plus GUI.
91    * New variable, `ess-use-inferior-program-name-in-buffer-name',
92      which enables using the executable name instead of the dialect
93      name for R. Feature request.
95    * ESS[S] `ess-execute-screen-options' now also works correctly when
96      there is more than one window *side-by-side* in the same frame and
97      runs in the correct buffer also when there is more than one S
98      buffer.
100    * iESS[S] new functions `ess-eval-paragraph-and-step' and
101      `ess-eval-function-or-paragraph-and-step' are bound to keys  `C-c
102      C-p' and `C-c C-c' respectively and to the menu in  ESS-mode; also
103      bound in the help mode (for evaluating examples).
105    * ESS[S] new function `ess-toggle-S-assign-key' allows to assign the
106      " <- " insertion to an arbitrary key.
108    Changes/New Features in 5.2.12:
109    * ESS[SAS]: `M-;' fixed, but the XEmacs function `comment-dwim' may
110      be broken, if so, use `M-x comment-region' and `M-x
111      uncomment-region' instead; only valid PROCs are fontified which is
112      very helpful finding syntax errors (currently supported: BASE,
113      ETS, FSP, GRAPH, IML, INSIGHT and STAT); the "feature" where
114      `F'-keys take you to an empty buffer when the requested
115      destination is a file that does not exist has been fixed, now the
116      request results in a no-op.  Further, sas-mode now also works in
117      simple terminals.
119    * Rterm/Cygwin combination works under Microsoft Windows.
121    * ESS[R]: internal calls use baseenv() instead of NULL and define
122      'baseenv' where needed.
124    * New experimental support for installing ESS.  See the file
125      `lisp/ess-install.el'.
127    Changes/New Features in 5.2.11:
128    * ESS Info entry and `dir' handled more effectively for GNU Emacs
129      users
131    * ESS[SAS]: temporary files created for batch submission of a region
132      are now named based on the current file; see `ess-sas-file-root'
133      for details; all `lag' and `dif' functions now fontified correctly
135    * iESS[SAS]: fixed a few nagging bugs, however, still does not
136      appear to work at this time; please let us know if you have any
137      ideas.
139    * ESS[S]: Support for running other versions of Splus has been added
140      for unix.  Two new variables, `ess-s-versions' and
141      `ess-s-versions-list', are used to tell ESS what other versions of
142      Splus you would like to run.
144    Changes/New Features in 5.2.10:
145    * ESS[R]: ess-r-versions can no longer be customized (since the
146      customization was not taking effect unless customizations were
147      loaded before ESS).  Its value has been changed so that it will
148      also find R executables beginning "R-devel" and "R-patched".  If
149      you wish to change this variable, it must be set in your `.emacs'
150      before ESS is loaded.
152    * Installation with GNU Make enhanced:  unix and unix-like operating
153      systems will now be able to install ESS for all users in either a
154      GNU Emacs site-lisp or an XEmacs package configuration by editing
155      `lisp/ess-site.el' and `Makeconf' accordingly, then issuing `make
156      install'
158    * ESS[S]: Filename completion (inside strings) now also works in
159      XEmacs for R and S-plus.
161    Changes/New Features in 5.2.9:
162    * ESS[R] for Windows:  the \ directory character bug with respect to
163      ess-load-file has been eradicated.
165    * iESS[SAS]: `C-c C-r' and `C-c C-b' once again work as intended and
166      documented.
168    * ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive.
170    * ESS[S]: Imenu now also shows setAs(), etc.
172    * ESS[R]: R function pattern enhanced with underlying code such that
173      `M-C-a' (`ess-beginning-of-function') etc now work for many more
174      cases, including S4 method definitions.
176    * iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1).
178    * ESS[R]: Improved detection of bogus help buffers: valid help
179      buffers containing with the string "no documentation"(e.g. contour)
180      were being treated as bogus.
182    * ESS[R]: In R help buffers, if `options("help.try.all.packages" =
183      TRUE)' then `?rlm' will list which packages rlm is defined in.
184      This help  buffer is not bogus, but instead is now relabelled
185      "*help[R](rlm in  packages)*".
187    * ESS[STA]: add "//" as comment starting character to syntax-table.
189    Changes/New Features in 5.2.8:
190    * iESS: [Tab] completes *file* names "inside string" as in earlier
191      (<= 5.2.3) ESS versions.
193    Changes/New Features in 5.2.7:
194    * If you use Custom to change the variable ess-toolbar-items, the
195      new toolbar is used in all subsequent ESS buffers.
197    * ESS[SAS]: new feature:  if ess-sas-log-max >0 and your .log grows
198      to more than ess-sas-log-max bytes, just the first ess-sas-log-max
199      bytes are refreshed; this is helpful when your .sas program
200      generates lots of error messages and gets too big for emacs to
201      display
203    * ESS[R/S]: `M-;' in R/S editing modes will now indent with either
204      one or two hashes depending on context.
206    * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are now
207      available (from ess-swv.el loaded by default).
209    Changes/New Features in 5.2.6:
210    * Removed non-ASCII characters in a few files.
212    * ESS[R]: now works better when UTF-8 locale is active; in
213      particular, you get correct directional quotes in R's startup
214      message  for R-devel (unstable development version of R 2.1.0)
215      when using  environment variables LANGUAGE=en@quot
216      LC_ALL=en_US.UTF-8
218    * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of .lst
219      mode now also available (`C-F10'); killing all buffers associated
220      with .sas program no longer bound to `C-F10' since its a bit
221      overzealous.
223    * S-Plus 7 for Windows is now recognized.
225    * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped
226      anymore.
228    * ESS[S] (incl. R): font-lock now correctly differs between R and S,
229      e.g., for "_"; both now fontify warning(.) and S does terminate()
230      additionally.
232    * Support for `bell' aka `beep' aka `ding' aka `alarm' in all
233      inferior modes: When \a is output "to the the console" at the
234      beginning of a line, the bell is rung.
236    Changes/New Features in 5.2.5:
237    * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work (again
238      and less klunkily) and do not append `-exited' to the buffer name.
239      Further, the behavior of `(ess-cleanup)', called from ess-quit,
240      now depends on the new customizable variable
241      `ess-S-quit-kill-buffers-p' which defaults to `nil'.
242      Consequently, the question _"Delete all buffers associated with
243      ..?"_ will not be asked anymore by default.
245    * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now work
246      with the `recode' application as well which is available on many
247      platforms
249    * ESS[S] (incl. R): Name completion for slots of S4 objects now
250      works!
252    Changes/New Features in 5.2.4:
253    * The documentation now includes an overview of how to use the emacs
254      TAGS facility for S functions.  (The distribution also used to
255      contain a directory `etc/other/Tags' where a ~1990 version of
256      `etags.c' was distributed; this is no longer relevant and so has
257      been deleted.)
259    * ESS[SAS] - When you are working with EBCDIC files on an ASCII
260      platform, .log NOTEs may display as gibberish since the EBCDIC
261      characters are not converted to ASCII prior to their display.  So,
262      the function ess-ebcdic-to-ascii-search-and-replace is provided for
263      convenience and is bound to `C-F11'.  This function requires the
264      `dd' command (only available on unix or unix-like platforms).
266    * ESS: Completion of object names is now always done dynamically
267      rather than allowing the option of using a pre-computed database
268      (by `ess-create-object-name-db') since modern computers seem fast
269      enough for dynamic completion.  (We expect few users, if any, have
270      been using the pre-computed database method.)
272    * ESS: object completion in iESS buffers running on Windows was very
273      slow (for GNU Emacs, but not XEmacs) and has now been fixed.
274      Further, it was more or less broken for all versions of S-plus 6.x,
275      and has been fixed to work everywhere but with the Windows' GUI of
276      S-plus.  The list of objects now shows unique names also when an
277      object appears more than once in the search path.
279    * ESS[R]: Completion of object names now also includes those
280      starting with ".".
282    Changes/New Features in 5.2.3:
283    * ESS: When new inferior ESS processes are created, by default they
284      will replace the current buffer (this restores behavior from pre
285      5.2.0). If you wish new ESS processes to start in another window
286      of the current frame, set inferior-ess-same-window to nil.
288    * New variables inferior-Splus-args and inferior-R-args provide a
289      way to pass command line arguments to starting S and R processes.
291    Changes/New Features in 5.2.2:
292    * bug-fixes for 5.2.1 (require 'executable), html docs, etc.
294    * ess-lisp-directory/../doc/info added to Info-directory-list if
295      ess-info not found by info
297    * ESS[R]: If you have other versions of R on your exec-path, such as
298      "R-1.8.1" with Unix or "rw1081" with Windows, ESS will find them
299      and create appropriate functions, such as `M-x R-1.8.1' or `M-x
300      rw1081', for calling them.  By default only Unix programs
301      beginning "R-1" and "R-2" and Windows programs parallel to the
302      version of R in your exec-path will be found, but see
303      ess-r-versions and ess-rterm-versions for ways to find other
304      versions of R.
306    * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and
307      "rw1081" on Windows, are added to the "ESS / Start Process /
308      Other" menu.
310    * ESS[S]: If you have other versions of S-Plus on your Windows
311      computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and
312      create appropriate functions, such as `M-x splus61', for calling
313      the console version (Sqpe) inside an emacs buffer.  By default only
314      programs installed in the default location will be found, but see
315      ess-SHOME-versions for ways to find other versions of S-Plus.
317    * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", are
318      added to the "ESS / Start Process / Other" menu.
320    * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now quit the
321      inferior R process, when issued from either the inferior buffer,
322      or from a .R buffer.
324    Changes/New Features in 5.2.1:
325    * ESS[S] (R and S-plus): now have toolbar support with icons to
326      evaluate code in the inferior process or to switch there.  This
327      code is experimental and likely to change as XEmacs/Emacs issues
328      get resolved. The toolbar should be enabled if your Emacs displays
329      images, but can be disabled with the variable ess-use-toolbar.
330      Thanks to David Smith from Insightful for the S-plus logo.
332    * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify
333      external file viewers for each graphics file type via the alist
334      ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled by
335      image-mode on XEmacs, if available, otherwise by graphics
336      primitives as before
338    Changes/New Features in 5.2.0:
339    * ESS[BUGS]:  new info documentation!  now supports interactive
340      processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); new
341      architecture-independent unix support as well as support for BUGS
342      v. 0.5
344    * ESS[SAS]:  convert .log to .sas with ess-sas-transcript; info
345      documentation improved; Local Variable bug fixes; SAS/IML
346      statements/functions now highlighted; files edited remotely by
347      ange-ftp/EFS/tramp are recognized and pressing SUBMIT opens a
348      buffer on the remote host via the local variable
349      ess-sas-shell-buffer-remote-init which defaults to "ssh"; changed
350      the definition of the variable ess-sas-edit-keys-toggle to boolean
351      rather than 0/1; added the function ess-electric-run-semicolon
352      which automatically reverse indents lines containing only "run;";
353      `C-F1' creates MS RTF portrait from the current buffer; `C-F2'
354      creates MS RTF landscape from the current buffer; `C-F9' opens a
355      SAS DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior"
356      aliases for SAS batch:  `C-c C-r' for submit region, `C-c C-b' for
357      submit buffer, `C-c C-x' for goto .log; `C-c C-y' for goto .lst
359    * ESS[S]: Pressing underscore ("_") once inserts " <- " (as before);
360      pressing underscore twice inserts a literal underscore.  To stop
361      this smart behaviour, add "(ess-toggle-underscore nil)" to your
362      .emacs after ess-site has been loaded;
363      ess-dump-filename-template-proto (new name!) now can be customized
364      successfully (for S language dialects); Support for Imenu has been
365      improved; set ess-imenu-use-S to non-nil to get an "Imenu-S" item
366      on your menubar; ess-help: Now using nice underlines (instead of
367      `nuke-* ^H_')
369    * ESS[R]:  After (require 'essa-r), `M-x ess-r-var' allows to load
370      numbers from any Emacs buffer into an existing *R* process; `M-x
371      ess-rdired' gives a "directory editor" of R objects; fixed
372      ess-retr-lastvalue-command, i.e. .Last.value bug (thanks to David
373      Brahm)
375    * ESS: Support for creating new window frames has been added to ESS.
376      Inferior ESS processes can be created in dedicated frames by
377      setting inferior-ess-own-frame to t.  ESS help buffers can also
378      open in new frames; see the documentation for ess-help-own-frame
379      for details.  (Thanks to Kevin Rodgers for contributing code.)
381    Changes/New Features in 5.1.24:
382    * The version number is now correct even inside ESS/Emacs
384    Changes/New Features in 5.1.23:
385    * Minor more Makefile clean up.
387    Changes/New Features in 5.1.22:
388    * Besides info documentation, PDF and HTML documentation are also
389      provided (instead of built using "make") and available on the web
390      as well; see ESS web page (http://ess.r-project.org/) and StatLib
391      (http://lib.stat.cmu.edu/general/ESS/doc)
393    * Now that info documentation is available, the README.* files are
394      no longer supported.  However, they are still distributed for what
395      it's worth.
397    * ESS is now an XEmacs package!  See XEmacs Installation HOWTO
398      (http://www.xemacs.org/Install/index.html) for details
399      (specifically, items 10-15).
401    * ESS[SAS]: more user-friendly enhancements for remote SAS batch
402      jobs with Kermit file transfers (LOG and OUTPUT function key
403      features now supported).  Multiple shells now supported so you can
404      run SAS on different computers from different buffers by setting
405      the buffer-local variable ess-sas-shell-buffer to unique buffer
406      names.
408    * Major re-vamping of Makefile/Makeconf.
410    Changes/New Features in 5.1.21:
411    * ESS[SAS]: info documentation now available!, see ESS->Help for
412      SAS; `F12' opens GSASFILE nearest point for viewing either within
413      emacs, when available, or via an external viewer; more syntax
414      highlighting keywords; more enhancements for remote SAS batch jobs
415      with Kermit; new framework for remote SAS interactive jobs, see
416      ess-remote
418    * ESS[S]: info documentation now available!, see ESS->Help for the S
419      family
421    * Makefile: tag now independent of rel; info files made by
422      doc/Makefile and installed in new info sub-directory
424    Changes/New Features in 5.1.20:
425    * New `options()$STERM' in the S dialects (S, S-Plus, R).  The S
426      program can determine the environment in which it is currently
427      running.  ESS sets the option to `iESS' or `ddeESS' when it starts
428      an S language process.  We recommend other specific values for S
429      language processes that ESS does not start.
431    * New `ess-mouse-me' function, assigned to S-mouse-3 by default.
432      User may click on a word or region and then choose from the menu
433      to display the item, or a summary, or a plot, etc.  This feature
434      is still under development.
436    * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS),
437      (some from Stephen Eglen).
439    * XEmacs 21.x is now supported (fixed w32-using-nt bug)
441    * XEmacs on Win (NT) is better supported.
443    * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win).
445    * should now work even when imenu is not available (for old
446      XEmacsen).
448    * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with your
449      function-key definitions, if specified; you can specify your SAS
450      library definitions outside of autoexec.sas for ess-sas-data-view
451      with SAS code placed in the variable ess-sas-data-view-libname,
452      also the dataset name is defaulted to the nearest permanent dataset
453      to point; Speedbar support now works for permanent datasets, please
454      ignore first./last.; new font-locking is now the default with more
455      improvements for font-locking PROCs, macro statements, * ; and %* ;
456      comments; you can toggle sas-log-mode with `F10' which will
457      font-lock your .log (if it isn't too big); submit remote .sas
458      files accessed with ange-ftp, EFS or Tramp (Kermit is
459      experimental) by setting ess-sas-submit-method to 'sh;
460      ess-sas-submit-command and ess-sas-submit-command-options are
461      buffer-local so you can have local file variable sections at the
462      end of your .sas files to request different executables or specify
463      special options and the local file variables are re-read at submit
464      instead of only at file open so that if you make a change it is
465      picked up immediately;
467    * ESS[BUGS]: font-lock with `in' fixed.
469    * for STATA: font-lock bug fixed.
471    * for Rd mode: `C-c C-v' and `switch-process' in menu.  further,
472      `C-c C-f' prefix (Rd-font) for inserting or surrounding a word by
473      things such as \code{.}, \code{\link{.}}, \emph{.} etc.
475    * new functions (ess-directory-function) and (ess-narrow-to-defun)
476      ess-directory <-> default-directory logic (Jeff Mincy).
478    * Re-organized Makefile and fixed a few bugs.
480    Changes/New Features in 5.1.19:
481    * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger
482      (Windows))
484    * New BUGS support through ESS[BUGS] mode (Rodney Sparapani)
485      Templates assist you in writing .bug and .cmd code (.cmd and .log
486      are replaced by .bmd and .bog to avoid emacs extension collisions).
487      Substitution" parameters facilitate "automagic" generation of
488      data...in" and "init...in" filenames, "const N=" from your data
489      file and "monitor()/stats()" commands.  Activated by pressing
490      `F12'.
492    * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger)
494    * You can change between PC and Unix, local and global SAS
495      function-key definitions interactively (Rich Heiberger)
497    * `C-Submit' a highlighted region to SAS batch (Rodney Sparapani)
499    * New and improved SAS syntax highlighting (Rodney Sparapani) To get
500      the new functionality, set ess-sas-run-make-regexp to nil.  Also
501      available in .log files via `F10'.
503    * Open a permanent SAS dataset for viewing via `F9' (Rodney
504      Sparapani) You must have the library defined in autoexec.sas for
505      it to work.
507    * User-friendly defaults for `sas-program',
508      `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' as
509      well Customize support for these and other ESS[SAS] variables
510      (Rodney Sparapani)
512    * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney
513      Sparapani)
515    * Emacs/XEmacs, Unix/Windows issues collectively handled in
516      ess-emcs.el
518    * defadvice solves problem of missing *ESS* (thanks to Jeff Mincy)
520    * Improved manual a bit by including things that were only in
521      `README'.
523    Changes/New Features in 5.1.18:
524    * New `ess-smart-underscore' function, now assigned to "_" by
525      default.  Inserts `ess-S-assign' (customizable " <- "), unless
526      inside string and comments where plain "_" is used instead. (MM)
528    * Fixes for longstanding interactive SAS breakage (RMH)
530    Changes/New Features in 5.1.17:
531    * Documentation for Windows Installation (Rich Heiberger)
533    * removal of ess-vars, finalization of customize support (in the
534      sense that there is no more use of ess-vars, but that we need to
535      fix ess-cust) (AJ Rossini)
537    * Many small (and large) fixes/contributions (MMaechler)
539    * addition of the "S-equal" variable and provide `M-x
540      ess-add-MM-keys' a way to remap "_" to `ess-S-assign', typically "
541      <- ", but customizable. (MMaechler)
543    Changes/New Features in 5.1.16:
544    * BUG FIXES
546    * Better SAS support
548    Changes/New Features in 5.1.15:
549    * BUG FIXES
551    Changes/New Features in 5.1.14:
552    * Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani)
554    * Customize support (for most Emacsen which support it) (AJRossini)
556    * ARC and ViSta support out of the box, and fixes for XLispStat
557      (AJRossini)
559    Changes/New Features in 5.1.13:
560    * Version numbering finally all depending on the ./VERSION file,
561      thanks to Martin Maechler.
563    * Yet more fixes to SAS mode, thanks to Rich Heiberger.
565    Changes/New Features in 5.1.12:
566    * Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables,
567      Chuck Taylor, and others.
569    * More fixes to SAS mode, thanks to Rodney Sparapani and Rich
570      Heiberger.
572    Changes/New Features in 5.1.11:
573    * More fixes to Stata mode, thanks to Brendan Halpin
574      (mailto:brendan@essex.ac.uk).
576    * fixed bugs in ESS-elsewhere, thanks to many testers
578    * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks
579      to David Brahm (mailto:brahm@alum.mit.edu).
581    * Fixes to SAS mode, thanks to Rodney Sparapani
583    Changes/New Features in 5.1.10:
584    * More fixes to Stata mode
586    * primitive generic version of ESS-elsewhere
588    * Small fixes to SAS/Stata.
590    Changes/New Features in 5.1.9:
591    * Stata mode works
593    * Literate Data Analysis using Noweb works
595    Changes/New Features in 5.1.8:
596    * Bug fixes
598    * R documentation mode defaults changed
600    Changes/New Features in 5.1.2:
601    * able to use inferior iESS mode to communicate directly with a
602      running S-Plus 4.x process using the Microsoft DDE protocol.  We
603      use the familiar (from Unix ESS) `C-c C-n' and related key
604      sequences to send lines from the S-mode file to the inferior S
605      process.  We continue to edit S input files in ESS[S] mode and
606      transcripts of previous S sessions in ESS Transcript mode.  All
607      three modes know the S language, syntax, and indentation patterns
608      and provide the syntactic highlighting that eases the programming
609      tasks.
611 1.4 Current Features
612 ====================
614    * Languages Supported:
615         * S family (S 3/4, S-PLUS 3.x/4.x/5.x/6.x/7.x, and R)
617         * SAS
619         * BUGS
621         * Stata
623         * XLispStat including Arc and ViSta
625    * Editing source code (S family, SAS, BUGS, XLispStat)
626         * Syntactic indentation and highlighting of source code
628         * Partial evaluation of code
630         * Loading and error-checking of code
632         * Source code revision maintenance
634         * Batch execution (SAS, BUGS)
636         * Use of imenu to provide links to appropriate functions
638    * Interacting with the process (S family, SAS, XLispStat)
639         * Command-line editing
641         * Searchable Command history
643         * Command-line completion of S family object names and file
644           names
646         * Quick access to object lists and search lists
648         * Transcript recording
650         * Interface to the help system
652    * Transcript manipulation (S family, XLispStat)
653         * Recording and saving transcript files
655         * Manipulating and editing saved transcripts
657         * Re-evaluating commands from transcript files
659    * Help File Editing (R)
660         * Syntactic indentation and highlighting of source code.
662         * Sending Examples to running ESS process.
664         * Previewing
666 1.5 Stability
667 =============
669 Versions 5.3.x are meant to be release-quality versions.  While some
670 new features are being introduced, we are cleaning up and improving the
671 interface.  We know about some remaining documentation inconsistencies.
672 Patches or suggested fixes with bug reports are much appreciated!
674 1.6 Requirements
675 ================
677 ESS has been tested with
679    * R >=0.49
681    * S-PLUS 3.3-4, 4.5, 5.0-1, 6.0-2, 7.0, 2000
683    * S4
685    * SAS >=6.12
687    * BUGS 0.5, 0.603
689    * Stata >=6.0
691    * XLispStat >=3.50
693    on the following platforms
695    * Linux (all)
697    * Solaris/SunOS (all)
699    * Microsoft Windows 95/98/NT/2000/XP (R, SPLUS 4.5/6.0-2/7.0/2000,
700      SAS and BUGS)
702    * Apple Mac OS (SAS for OS 9 and R for OS X)
704    with the following versions of emacs
706    * GNU Emacs 20.3-7, 21.1, 21.3-4, 22.0.50-pretesting
708    * XEmacs 21.0, 21.1.13-14, 21.4.0-8, 21.4.9-13(1), 21.4.14-15,
709      21.4.17-18, 21.5.23
711    ---------- Footnotes ----------
713    (1) require the files.el patch to revert-buffer for the Local
714 Variables updating problem
716 1.7 Getting the Latest Version
717 ==============================
719 The latest released version of ESS is always available on the web at:
720 ESS web page (http://ess.r-project.org) or StatLib
721 (http://lib.stat.cmu.edu/general/ESS/)
723    The latest development version of ESS is available via
724 `https://svn.R-project.org/ESS/', the ESS Subversion repository.  If
725 you have a Subversion client (see `http://subversion.tigris.org/'), you
726 can download the sources using:
727      % svn checkout https://svn.r-project.org/ESS/trunk PATH
728    which will put the ESS files into directory PATH.  Later, within
729 that directory, `svn update' will bring that directory up to date.
730 Windows-based tools such as TortoiseSVN are also available for
731 downloading the files.  Alternatively, you can browse the sources with a
732 web browser at: ESS SVN site (https://svn.r-project.org/ESS/trunk).
733 However, please use a subversion client instead to minimize the load
734 when retrieving.
736    If you remove other versions of ESS from your emacs load-path, you
737 can then use the development version by adding the following to .emacs:
739      (load "/path/to/ess-svn/lisp/ess-site.el")
741    Note that https is required, and that the SSL certificate for the
742 Subversion server of the R project is
744      Certificate information:
745       - Hostname: svn.r-project.org
746       - Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT
747       - Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH
748       - Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad
750 (currently, there is no "trusted certificate").  You can accept this
751 certificate permanently and will not be asked about it anymore.
753 1.8 Installation (from tar file)
754 ================================
756 We now discuss installation, which might happen under Unix or Microsoft
757 Windows.  First, we discuss Unix installation.  *Note Unix
758 installation::.
760    For Microsoft Windows Installation please skip to the *Note
761 Microsoft Windows installation::.
763 1.9 Unix installation
764 =====================
766   1. `cd' to a directory where you want to install ESS, creating it if
767      necessary.  This directory will be referred to below as `ESSDIR'.
769   2. Retrieve the latest version from ESS downloads area
770      (http://ess.r-project.org/downloads/ess) to `ESSDIR'.
772   3. Decompress/unarchive the files from the disribution.
773           Either, `gunzip < ess-VERSION.tgz | tar xf -',
774           or using GNU tar, `tar zxf ess-VERSION.tgz'.
776      The `tar' command will create the subdirectory `ess-VERSION' and
777      install the files there.
779   4. Edit the file `ESSDIR/ess-VERSION/lisp/ess-site.el' as explained
780      in the comments section of that file.
782   5.  Add the line
783           (load "ESSDIR/ess-VERSION/lisp/ess-site")
784      to your user or system installation file (GNU Emacs uses
785      `$HOME/.emacs' and XEmacs uses `$HOME/.xemacs/init.el' for the
786      user initialization file.  GNU Emacs uses `default.el' or
787      `site-init.el' and XEmacs uses `site-start.el' for the system
788      installation file).
790      Alternatively, if `ess-site.el' is in your current `load-path',
791      then:
792           (require 'ess-site)
793      to configure emacs for ESS.
795   6. That's it!  If you are installing just a local copy of ESS for
796      yourself, ESS is now ready to be used.  (The remaining step below
797      is for advanced installation.)  To edit statistical programs, load
798      the files with the requiste extensions (`.sas' for SAS, `.S' for
799      S-PLUS, `.R' for R, and `.lsp' for XLispStat).  To start a
800      statistical process within emacs, such as R, type `M-x R'.
802   7. (OPTIONAL) READ THIS ITEM THOROUGHLY BEFORE STARTING:
804      If you want to place the compiled files in other locations edit the
805      `LISPDIR', `INFODIR' and `ETCDIR' entries in Section 1 of
806      `Makeconf' in the `ESSDIR/ess-VERSION' directory (if you are using
807      XEmacs, then see the XEmacs subsection in Section 1 of `Makeconf').
809      You can compile those files by:
810           make all
812      When that completes successfully, install the compiled files:
813           make install
815      _Note:_ ESS is no longer available as an XEmacs package.  But, you
816      can still install ESS into the XEmacs package system by choosing
817      the appropriate directory for unpacking as follows:
818      `PREFIX/lib/xemacs/site-packages' on unix or
819      `PREFIX\XEmacs\site-packages' on windows _Note:_ ESS will work
820      best if the XEmacs sumo tarball (all XEmacs packages combined) has
821      been installed.  For more information on installing XEmacs
822      packages, see Quickstart Package Guide
823      (http://www.xemacs.org/Documentation/packageGuide.html).
826 1.10 Microsoft Windows installation
827 ===================================
829 For Microsoft Windows installation, please follow the next steps: (see
830 separate instructions above for UNIX *Note Unix installation::.
832   1. `cd' to a directory where you keep emacs lisp files, or create a
833      new directory (for example, `c:\emacs\') to hold the distribution.
834      This directory will be referred to below as "the ESS distribution
835      directory".
837   2. Retrieve the latest zip file (`ess-VERSION.zip') or compressed tar
838      file `ess-VERSION.tgz' from ESS downloads area
839      (http://ess.r-project.org/downloads/ess) and store it in the ESS
840      distribution directory.  Be aware that http browsers on Windows
841      frequently change the "." and "-" characters in filenames to other
842      punctuation.  Please change the names back to their original form.
844   3. Extract all the files from `ess-VERSION.zip' or `ess-VERSION.tgz'
845      into the ESS distribution directory as `c:\emacs\ess-VERSION\'.
846      You may use the commands `unzip' on the zip archive or `gunzip'
847      and `tar' on the tgz file.  It is possible to unpack the zip
848      archive in Windows Explorer, by double clicking on the folder; you
849      should then see a new folder called `ess-VERSION'.  Drag that
850      folder into your ESS distribution directory.
852   4. Add the line
853           (load "C:/emacs/ess-VERSION/lisp/ess-site")
854      to your emacs initialization file.  (GNU Emacs uses the filename
855      `~/.emacs' and XEmacs uses the filename `~/.xemacs/init.el' for
856      the initialization file.  The tilde is recognised by emacs as your
857      HOME directory, i.e. the value of your HOME environment variable.)
858      Replace `VERSION' above with the version number of ESS.  Remember
859      to use forwardslashes `/', rather than backslashes `\', in your
860      filename inside emacs code files.
862      After saving your initialization file, ESS is now installed.
863      Start a new emacs and you should be ready to use ESS.  For
864      example, to edit statistical programs, load the files with the
865      requisite extensions (".sas" for SAS, ".S" or "s" or "q" or "Q"
866      for S-PLUS, ".r" or ".R" for R, and ".lsp" for XLispStat).  One
867      further step is needed if you wish to run statistical processes,
868      see below.
870   5. To run statistical processes under ESS, Windows users will need to
871      make sure that the directories for the software they will be using
872      is in the PATH environment variable.  On Windows 9x, add lines
873      similar to the following to your `c:\autoexec.bat' file:
874           path=%PATH%;c:\progra~1\insightful\splus70\cmd
875      On Windows NT/2000/XP, add the directories to the PATH using the
876      `My Computer/Control Panel/System/Advanced/Environment Variables'
877      menu.  Note that the directory containing the program is added to
878      the PATH, not the program itself.  One such line is needed for
879      each software program.  Be sure to use the abbreviation `progra~1'
880      and not the long version with embedded blanks.  Use backslashes
881      "`\'".
883      An alternative, for R users, is that rather than adjusting the PATH
884      variable, you can add the following to your emacs initialization
885      file (and restart emacs):
886           (setq inferior-R-program-name "C:/progra~1/R/R-2.2.1/bin/Rterm.exe")
887      This assumes that you have installed R-2.2.1 in the default
888      location.  Change the path otherwise to point to other locations.
890      Windows users who place S-PLUS anywhere other than the default
891      location will also need to add the following three lines (properly
892      adjusted for their location) to their `%HOME%/.emacs' or
893      `%HOME%/.xemacs/init.el' file:
894           (setq-default inferior-S+6-program-name
895               "c:/progra~1/Insightful/SPLUS70/cmd/Splus")
896           (setq-default inferior-Sqpe+6-SHOME-name
897               "c:/progra~1/Insightful/SPLUS70")
898           (setq-default inferior-Sqpe+6-program-name
899               "c:/progra~1/Insightful/SPLUS70/cmd/Sqpe.exe")
900      The above example uses the default location of S-PLUS in
901      `c:/progra~1/Insightful'.  Please note that ESS considers S-PLUS
902      6, 7, and 8 to be variants of S+6.
904      These users may also need to modify the emacs variable
905      `ess-SHOME-versions' to match their installation in order to get
906      the full set of S-PLUS versions on their machine into the `ESS'
907      menu.
909      To start the S-PLUS [678].x GUI from ESS under emacs:
910        1. If you use Cygwin bash as your primary shell, then
911                M-x S
912                (or `M-x S+6').
914        2. If you use the MSDOS prompt window as your primary shell, then
915                M-x S+6-msdos
916           You will then be asked for a pathname ("S starting data
917      directory?"), from which to start the process.  The prompt will
918      propose your current directory as the default.  ESS will start the
919      S-PLUS GUI.  There will be slight delay during which emacs is
920      temporarily frozen.  ESS will arrange for communication with the
921      S-PLUS GUI using the DDE protocol.  Send lines or regions from the
922      emacs buffer containing your S program (for example, `myfile.s')
923      to the S-PLUS Commands Window with the `C-c C-n' or `C-c C-r' keys.
924      (If you are still using S-PLUS 4.x or 2000,\ then use `M-x S+4' or
925      `M-x S+4-msdos'.)
927      To start an S-PLUS [678].x session inside an emacs buffer--and
928      without the S-PLUS GUI:
929           M-x Sqpe
930           (or `M-x Sqpe+6').
931      This works with both the bash and msdos shells.  You will then be
932      asked for a pathname ("S starting data directory?"), from which to
933      start the process.  The prompt will propose your current directory
934      as the default.  You get Unix-like behavior, in particular the
935      entire transcript is available for emacs-style search commands.
936      Send lines or regions from the emacs buffer containing your S
937      program (for example, `myfile.s') to the *S+6* buffer with the
938      `C-c C-n' or `C-c C-r' keys.  Interactive graphics are available
939      with Sqpe by using the java library supplied with S-PLUS 6.1 and
940      newer releases.  Enter the commands:
941           library(winjava)
942           java.graph()
943      Graphs can be saved from the `java.graph' device in several
944      formats, but not PostScript.   If you need a PostScript file you
945      will need to open a separate `postscript' device.  (If you are
946      still using S-PLUS 4.x or 2000, then use `M-x Sqpe+4'.)
948      To connect to an already running S-PLUS GUI (started, for example,
949      from the S-PLUS icon):
950           M-x S+6-existing
951      or
952           M-x S+6-msdos-existing
953      You will then be asked for a pathname ("S starting data
954      directory?"), from which to start the process.  The prompt will
955      propose your current directory as the default.  ESS will arrange
956      for communication with the already running S-PLUS GUI using the
957      DDE protocol.  Send lines or regions from the emacs buffer
958      containing your S program (for example, `myfile.s') to the S-PLUS
959      Commands Window with the `C-c C-n' or `C-c C-r' keys.  (If you are
960      still using S-PLUS 4.x or 2000,  then use `M-x S+4-existing' or
961      `M-x S+4-msdos-existing'.)
963      If you wish to run R, you can start it with:
964           M-x R
966      XLispStat can not currently be run with
967           M-x XLS
968      Hopefully, this will change.  However, you can still edit with
969      emacs, and cut and paste the results into the XLispStat *Listener*
970      Window under Microsoft Windows.
972   6. That's it!
975 1.11 Reporting Bugs
976 ===================
978 Please send bug reports, suggestions etc. to
979 <ESS-bugs@stat.math.ethz.ch>
981    The easiest way to do this is within Emacs by typing
983    `M-x ess-submit-bug-report'
985    This also gives the maintainers valuable information about your
986 installation which may help us to identify or even fix the bug.
988    If Emacs reports an error, backtraces can help us debug the problem.
989 Type "M-x set-variable RET debug-on-error RET t RET".  Then run the
990 command that causes the error and you should see a *Backtrace* buffer
991 containing debug information; send us that buffer.
993    Note that comments, suggestions, words of praise and large cash
994 donations are also more than welcome.
996 1.12 Mailing Lists
997 ==================
999 There is a mailing list for discussions and announcements relating to
1000 ESS.  Join the list by sending an e-mail with "subscribe ess-help" (or
1001 "help") in the body to <ess-help-request@stat.math.ethz.ch>;
1002 contributions to the list may be mailed to
1003 <ess-help@stat.math.ethz.ch>.  Rest assured, this is a fairly
1004 low-volume mailing list.
1006    The purposes of the mailing list include
1008    *  helping users of ESS to get along with it.
1010    *  discussing aspects of using ESS on Emacs and XEmacs.
1012    *  suggestions for improvements.
1014    *  announcements of new releases of ESS.
1016    *  posting small patches to ESS.
1018 1.13 Authors
1019 ============
1021    * A.J. Rossini (mailto:blindglobe@gmail.com)
1023    * Richard M. Heiberger (mailto:rmh@temple.edu)
1025    * Kurt Hornik (mailto:Kurt.Hornik@R-project.org)
1027    * Martin Maechler (mailto:maechler@stat.math.ethz.ch)
1029    * Rodney A. Sparapani (mailto:rsparapa@mcw.edu)
1031    * Stephen Eglen (mailto:stephen@gnu.org)