(ess-submit-bug-report): Use insert-buffer-substring, not
[ess.git] / README
blobad766051410aa26ed5a1249de093afa29391c8f2
1 1 General Information: README
2 *****************************
4 This is the README file for the distribution of ESS version
6    5.2.13
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.2.13:
59    * New variable, `ess-use-inferior-program-name-in-buffer-name',
60      which uses the executable name instead of the dialect name for R.
61      Feature request.
63    * ESS[S] `ess-execute-screen-options' now also works correctly when
64      there is more than one window *side-by-side* in the same frame and
65      runs in the correct buffer also when there is more than one S
66      buffer.
68    * iESS[S] new functions `ess-eval-paragraph-and-step' and
69      `ess-eval-function-or-paragraph-and-step' are bound to keys  `C-c
70      C-p' and `C-c C-c' respectively.
72    * ESS[S] new function `ess-toggle-S-assign-key' allows to assign the
73      " <- " insertion to an arbitrary key.
75    * ESS[S] long standing bugs in ess-help for Windows (S-plus GUI)
76      fixed.
78    Changes/New Features in 5.2.12:
79    * ESS[SAS]: `M-;' fixed, but the XEmacs function `comment-dwim' may
80      be broken, if so, use `M-x comment-region' and `M-x
81      uncomment-region' instead; only valid PROCs are fontified which is
82      very helpful finding syntax errors (currently supported: BASE,
83      ETS, FSP, GRAPH, IML, INSIGHT and STAT); the "feature" where
84      `F'-keys take you to an empty buffer when the requested
85      destination is a file that does not exist has been fixed, now the
86      request results in a no-op.  Further, sas-mode now also works in
87      simple terminals.
89    * Rterm/Cygwin combination works under Microsoft Windows.
91    * ESS[R]: internal calls use baseenv() instead of NULL and define
92      'baseenv' where needed.
94    * New experimental support for installing ESS.  See the file
95      `lisp/ess-install.el'.
97    Changes/New Features in 5.2.11:
98    * ESS Info entry and `dir' handled more effectively for GNU Emacs
99      users
101    * ESS[SAS]: temporary files created for batch submission of a region
102      are now named based on the current file; see `ess-sas-file-root'
103      for details; all `lag' and `dif' functions now fontified correctly
105    * iESS[SAS]: fixed a few nagging bugs, however, still does not
106      appear to work at this time; please let us know if you have any
107      ideas.
109    * ESS[S]: Support for running other versions of Splus has been added
110      for unix.  Two new variables, `ess-s-versions' and
111      `ess-s-versions-list', are used to tell ESS what other versions of
112      Splus you would like to run.
114    Changes/New Features in 5.2.10:
115    * ESS[R]: ess-r-versions can no longer be customized (since the
116      customization was not taking effect unless customizations were
117      loaded before ESS).  Its value has been changed so that it will
118      also find R executables beginning "R-devel" and "R-patched".  If
119      you wish to change this variable, it must be set in your `.emacs'
120      before ESS is loaded.
122    * Installation with GNU Make enhanced:  unix and unix-like operating
123      systems will now be able to install ESS for all users in either a
124      GNU Emacs site-lisp or an XEmacs package configuration by editing
125      `lisp/ess-site.el' and `Makeconf' accordingly, then issuing `make
126      install'
128    * ESS[S]: Filename completion (inside strings) now also works in
129      XEmacs for R and S-plus.
131    Changes/New Features in 5.2.9:
132    * ESS[R] for Windows:  the \ directory character bug with respect to
133      ess-load-file has been eradicated.
135    * iESS[SAS]: `C-c C-r' and `C-c C-b' once again work as intended and
136      documented.
138    * ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive.
140    * ESS[S]: Imenu now also shows setAs(), etc.
142    * ESS[R]: R function pattern enhanced with underlying code such that
143      `M-C-a' (`ess-beginning-of-function') etc now work for many more
144      cases, including S4 method definitions.
146    * iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1).
148    * ESS[R]: Improved detection of bogus help buffers: valid help
149      buffers containing with the string "no documentation"(e.g. contour)
150      were being treated as bogus.
152    * ESS[R]: In R help buffers, if `options("help.try.all.packages" =
153      TRUE)' then `?rlm' will list which packages rlm is defined in.
154      This help  buffer is not bogus, but instead is now relabelled
155      "*help[R](rlm in  packages)*".
157    * ESS[STA]: add "//" as comment starting character to syntax-table.
159    Changes/New Features in 5.2.8:
160    * iESS: [Tab] completes *file* names "inside string" as in earlier
161      (<= 5.2.3) ESS versions.
163    Changes/New Features in 5.2.7:
164    * If you use Custom to change the variable ess-toolbar-items, the
165      new toolbar is used in all subsequent ESS buffers.
167    * ESS[SAS]: new feature:  if ess-sas-log-max >0 and your .log grows
168      to more than ess-sas-log-max bytes, just the first ess-sas-log-max
169      bytes are refreshed; this is helpful when your .sas program
170      generates lots of error messages and gets too big for emacs to
171      display
173    * ESS[R/S]: `M-;' in R/S editing modes will now indent with either
174      one or two hashes depending on context.
176    * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are now
177      available (from ess-swv.el loaded by default).
179    Changes/New Features in 5.2.6:
180    * Removed non-ASCII characters in a few files.
182    * ESS[R]: now works better when UTF-8 locale is active; in
183      particular, you get correct directional quotes in R's startup
184      message  for R-devel (unstable development version of R 2.1.0)
185      when using  environment variables LANGUAGE=en@quot
186      LC_ALL=en_US.UTF-8
188    * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of .lst
189      mode now also available (`C-F10'); killing all buffers associated
190      with .sas program no longer bound to `C-F10' since its a bit
191      overzealous.
193    * S-Plus 7 for Windows is now recognized.
195    * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped
196      anymore.
198    * ESS[S] (incl. R): font-lock now correctly differs between R and S,
199      e.g., for "_"; both now fontify warning(.) and S does terminate()
200      additionally.
202    * Support for `bell' aka `beep' aka `ding' aka `alarm' in all
203      inferior modes: When \a is output "to the the console" at the
204      beginning of a line, the bell is rung.
206    Changes/New Features in 5.2.5:
207    * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work (again
208      and less klunkily) and do not append `-exited' to the buffer name.
209      Further, the behavior of `(ess-cleanup)', called from ess-quit,
210      now depends on the new customizable variable
211      `ess-S-quit-kill-buffers-p' which defaults to `nil'.
212      Consequently, the question _"Delete all buffers associated with
213      ..?"_ will not be asked anymore by default.
215    * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now work
216      with the `recode' application as well which is available on many
217      platforms
219    * ESS[S] (incl. R): Name completion for slots of S4 objects now
220      works!
222    Changes/New Features in 5.2.4:
223    * The documentation now includes an overview of how to use the emacs
224      TAGS facility for S functions.  (The distribution also used to
225      contain a directory `etc/other/Tags' where a ~1990 version of
226      `etags.c' was distributed; this is no longer relevant and so has
227      been deleted.)
229    * ESS[SAS] - When you are working with EBCDIC files on an ASCII
230      platform, .log NOTEs may display as gibberish since the EBCDIC
231      characters are not converted to ASCII prior to their display.  So,
232      the function ess-ebcdic-to-ascii-search-and-replace is provided for
233      convenience and is bound to `C-F11'.  This function requires the
234      `dd' command (only available on unix or unix-like platforms).
236    * ESS: Completion of object names is now always done dynamically
237      rather than allowing the option of using a pre-computed database
238      (by `ess-create-object-name-db') since modern computers seem fast
239      enough for dynamic completion.  (We expect few users, if any, have
240      been using the pre-computed database method.)
242    * ESS: object completion in iESS buffers running on Windows was very
243      slow (for GNU Emacs, but not XEmacs) and has now been fixed.
244      Further, it was more or less broken for all versions of S-plus 6.x,
245      and has been fixed to work everywhere but with the Windows' GUI of
246      S-plus.  The list of objects now shows unique names also when an
247      object appears more than once in the search path.
249    * ESS[R]: Completion of object names now also includes those
250      starting with ".".
252    Changes/New Features in 5.2.3:
253    * ESS: When new inferior ESS processes are created, by default they
254      will replace the current buffer (this restores behavior from pre
255      5.2.0). If you wish new ESS processes to start in another window
256      of the current frame, set inferior-ess-same-window to nil.
258    * New variables inferior-Splus-args and inferior-R-args provide a
259      way to pass command line arguments to starting S and R processes.
261    Changes/New Features in 5.2.2:
262    * bug-fixes for 5.2.1 (require 'executable), html docs, etc.
264    * ess-lisp-directory/../doc/info added to Info-directory-list if
265      ess-info not found by info
267    * ESS[R]: If you have other versions of R on your exec-path, such as
268      "R-1.8.1" with Unix or "rw1081" with Windows, ESS will find them
269      and create appropriate functions, such as `M-x R-1.8.1' or `M-x
270      rw1081', for calling them.  By default only Unix programs
271      beginning "R-1" and "R-2" and Windows programs parallel to the
272      version of R in your exec-path will be found, but see
273      ess-r-versions and ess-rterm-versions for ways to find other
274      versions of R.
276    * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and
277      "rw1081" on Windows, are added to the "ESS / Start Process /
278      Other" menu.
280    * ESS[S]: If you have other versions of S-Plus on your Windows
281      computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and
282      create appropriate functions, such as `M-x splus61', for calling
283      the console version (Sqpe) inside an emacs buffer.  By default only
284      programs installed in the default location will be found, but see
285      ess-SHOME-versions for ways to find other versions of S-Plus.
287    * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", are
288      added to the "ESS / Start Process / Other" menu.
290    * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now quit the
291      inferior R process, when issued from either the inferior buffer,
292      or from a .R buffer.
294    Changes/New Features in 5.2.1:
295    * ESS[S] (R and S-plus): now have toolbar support with icons to
296      evaluate code in the inferior process or to switch there.  This
297      code is experimental and likely to change as XEmacs/Emacs issues
298      get resolved. The toolbar should be enabled if your Emacs displays
299      images, but can be disabled with the variable ess-use-toolbar.
300      Thanks to David Smith from Insightful for the S-plus logo.
302    * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify
303      external file viewers for each graphics file type via the alist
304      ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled by
305      image-mode on XEmacs, if available, otherwise by graphics
306      primitives as before
308    Changes/New Features in 5.2.0:
309    * ESS[BUGS]:  new info documentation!  now supports interactive
310      processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); new
311      architecture-independent unix support as well as support for BUGS
312      v. 0.5
314    * ESS[SAS]:  convert .log to .sas with ess-sas-transcript; info
315      documentation improved; Local Variable bug fixes; SAS/IML
316      statements/functions now highlighted; files edited remotely by
317      ange-ftp/EFS/tramp are recognized and pressing SUBMIT opens a
318      buffer on the remote host via the local variable
319      ess-sas-shell-buffer-remote-init which defaults to "ssh"; changed
320      the definition of the variable ess-sas-edit-keys-toggle to boolean
321      rather than 0/1; added the function ess-electric-run-semicolon
322      which automatically reverse indents lines containing only "run;";
323      `C-F1' creates MS RTF portrait from the current buffer; `C-F2'
324      creates MS RTF landscape from the current buffer; `C-F9' opens a
325      SAS DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior"
326      aliases for SAS batch:  `C-c C-r' for submit region, `C-c C-b' for
327      submit buffer, `C-c C-x' for goto .log; `C-c C-y' for goto .lst
329    * ESS[S]: Pressing underscore ("_") once inserts " <- " (as before);
330      pressing underscore twice inserts a literal underscore.  To stop
331      this smart behaviour, add "(ess-toggle-underscore nil)" to your
332      .emacs after ess-site has been loaded;
333      ess-dump-filename-template-proto (new name!) now can be customized
334      successfully (for S language dialects); Support for Imenu has been
335      improved; set ess-imenu-use-S to non-nil to get an "Imenu-S" item
336      on your menubar; ess-help: Now using nice underlines (instead of
337      `nuke-* ^H_')
339    * ESS[R]:  After (require 'essa-r), `M-x ess-r-var' allows to load
340      numbers from any Emacs buffer into an existing *R* process; `M-x
341      ess-rdired' gives a "directory editor" of R objects; fixed
342      ess-retr-lastvalue-command, i.e. .Last.value bug (thanks to David
343      Brahm)
345    * ESS: Support for creating new window frames has been added to ESS.
346      Inferior ESS processes can be created in dedicated frames by
347      setting inferior-ess-own-frame to t.  ESS help buffers can also
348      open in new frames; see the documentation for ess-help-own-frame
349      for details.  (Thanks to Kevin Rodgers for contributing code.)
351    Changes/New Features in 5.1.24:
352    * The version number is now correct even inside ESS/Emacs
354    Changes/New Features in 5.1.23:
355    * Minor more Makefile clean up.
357    Changes/New Features in 5.1.22:
358    * Besides info documentation, PDF and HTML documentation are also
359      provided (instead of built using "make") and available on the web
360      as well; see ESS web page (http://ess.r-project.org/) and StatLib
361      (http://lib.stat.cmu.edu/general/ESS/doc)
363    * Now that info documentation is available, the README.* files are
364      no longer supported.  However, they are still distributed for what
365      it's worth.
367    * ESS is now an XEmacs package!  See XEmacs Installation HOWTO
368      (http://www.xemacs.org/Install/index.html) for details
369      (specifically, items 10-15).
371    * ESS[SAS]: more user-friendly enhancements for remote SAS batch
372      jobs with Kermit file transfers (LOG and OUTPUT function key
373      features now supported).  Multiple shells now supported so you can
374      run SAS on different computers from different buffers by setting
375      the buffer-local variable ess-sas-shell-buffer to unique buffer
376      names.
378    * Major re-vamping of Makefile/Makeconf.
380    Changes/New Features in 5.1.21:
381    * ESS[SAS]: info documentation now available!, see ESS->Help for
382      SAS; `F12' opens GSASFILE nearest point for viewing either within
383      emacs, when available, or via an external viewer; more syntax
384      highlighting keywords; more enhancements for remote SAS batch jobs
385      with Kermit; new framework for remote SAS interactive jobs, see
386      ess-remote
388    * ESS[S]: info documentation now available!, see ESS->Help for the S
389      family
391    * Makefile: tag now independent of rel; info files made by
392      doc/Makefile and installed in new info sub-directory
394    Changes/New Features in 5.1.20:
395    * New `options()$STERM' in the S dialects (S, S-Plus, R).  The S
396      program can determine the environment in which it is currently
397      running.  ESS sets the option to `iESS' or `ddeESS' when it starts
398      an S language process.  We recommend other specific values for S
399      language processes that ESS does not start.
401    * New `ess-mouse-me' function, assigned to S-mouse-3 by default.
402      User may click on a word or region and then choose from the menu
403      to display the item, or a summary, or a plot, etc.  This feature
404      is still under development.
406    * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS),
407      (some from Stephen Eglen).
409    * XEmacs 21.x is now supported (fixed w32-using-nt bug)
411    * XEmacs on Win (NT) is better supported.
413    * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win).
415    * should now work even when imenu is not available (for old
416      XEmacsen).
418    * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with your
419      function-key definitions, if specified; you can specify your SAS
420      library definitions outside of autoexec.sas for ess-sas-data-view
421      with SAS code placed in the variable ess-sas-data-view-libname,
422      also the dataset name is defaulted to the nearest permanent dataset
423      to point; Speedbar support now works for permanent datasets, please
424      ignore first./last.; new font-locking is now the default with more
425      improvements for font-locking PROCs, macro statements, * ; and %* ;
426      comments; you can toggle sas-log-mode with `F10' which will
427      font-lock your .log (if it isn't too big); submit remote .sas
428      files accessed with ange-ftp, EFS or Tramp (Kermit is
429      experimental) by setting ess-sas-submit-method to 'sh;
430      ess-sas-submit-command and ess-sas-submit-command-options are
431      buffer-local so you can have local file variable sections at the
432      end of your .sas files to request different executables or specify
433      special options and the local file variables are re-read at submit
434      instead of only at file open so that if you make a change it is
435      picked up immediately;
437    * ESS[BUGS]: font-lock with `in' fixed.
439    * for STATA: font-lock bug fixed.
441    * for Rd mode: `C-c C-v' and `switch-process' in menu.  further,
442      `C-c C-f' prefix (Rd-font) for inserting or surrounding a word by
443      things such as \code{.}, \code{\link{.}}, \emph{.} etc.
445    * new functions (ess-directory-function) and (ess-narrow-to-defun)
446      ess-directory <-> default-directory logic (Jeff Mincy).
448    * Re-organized Makefile and fixed a few bugs.
450    Changes/New Features in 5.1.19:
451    * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger
452      (Windows))
454    * New BUGS support through ESS[BUGS] mode (Rodney Sparapani)
455      Templates assist you in writing .bug and .cmd code (.cmd and .log
456      are replaced by .bmd and .bog to avoid emacs extension collisions).
457      Substitution" parameters facilitate "automagic" generation of
458      data...in" and "init...in" filenames, "const N=" from your data
459      file and "monitor()/stats()" commands.  Activated by pressing
460      `F12'.
462    * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger)
464    * You can change between PC and Unix, local and global SAS
465      function-key definitions interactively (Rich Heiberger)
467    * `C-Submit' a highlighted region to SAS batch (Rodney Sparapani)
469    * New and improved SAS syntax highlighting (Rodney Sparapani) To get
470      the new functionality, set ess-sas-run-make-regexp to nil.  Also
471      available in .log files via `F10'.
473    * Open a permanent SAS dataset for viewing via `F9' (Rodney
474      Sparapani) You must have the library defined in autoexec.sas for
475      it to work.
477    * User-friendly defaults for `sas-program',
478      `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' as
479      well Customize support for these and other ESS[SAS] variables
480      (Rodney Sparapani)
482    * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney
483      Sparapani)
485    * Emacs/XEmacs, Unix/Windows issues collectively handled in
486      ess-emcs.el
488    * defadvice solves problem of missing *ESS* (thanks to Jeff Mincy)
490    * Improved manual a bit by including things that were only in
491      `README'.
493    Changes/New Features in 5.1.18:
494    * New `ess-smart-underscore' function, now assigned to "_" by
495      default.  Inserts `ess-S-assign' (customizable " <- "), unless
496      inside string and comments where plain "_" is used instead. (MM)
498    * Fixes for longstanding interactive SAS breakage (RMH)
500    Changes/New Features in 5.1.17:
501    * Documentation for Windows Installation (Rich Heiberger)
503    * removal of ess-vars, finalization of customize support (in the
504      sense that there is no more use of ess-vars, but that we need to
505      fix ess-cust) (AJ Rossini)
507    * Many small (and large) fixes/contributions (MMaechler)
509    * addition of the "S-equal" variable and provide `M-x
510      ess-add-MM-keys' a way to remap "_" to `ess-S-assign', typically "
511      <- ", but customizable. (MMaechler)
513    Changes/New Features in 5.1.16:
514    * BUG FIXES
516    * Better SAS support
518    Changes/New Features in 5.1.15:
519    * BUG FIXES
521    Changes/New Features in 5.1.14:
522    * Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani)
524    * Customize support (for most Emacsen which support it) (AJRossini)
526    * ARC and ViSta support out of the box, and fixes for XLispStat
527      (AJRossini)
529    Changes/New Features in 5.1.13:
530    * Version numbering finally all depending on the ./VERSION file,
531      thanks to Martin Maechler.
533    * Yet more fixes to SAS mode, thanks to Rich Heiberger.
535    Changes/New Features in 5.1.12:
536    * Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables,
537      Chuck Taylor, and others.
539    * More fixes to SAS mode, thanks to Rodney Sparapani and Rich
540      Heiberger.
542    Changes/New Features in 5.1.11:
543    * More fixes to Stata mode, thanks to Brendan Halpin
544      (mailto:brendan@essex.ac.uk).
546    * fixed bugs in ESS-elsewhere, thanks to many testers
548    * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks
549      to David Brahm (mailto:brahm@alum.mit.edu).
551    * Fixes to SAS mode, thanks to Rodney Sparapani
553    Changes/New Features in 5.1.10:
554    * More fixes to Stata mode
556    * primitive generic version of ESS-elsewhere
558    * Small fixes to SAS/Stata.
560    Changes/New Features in 5.1.9:
561    * Stata mode works
563    * Literate Data Analysis using Noweb works
565    Changes/New Features in 5.1.8:
566    * Bug fixes
568    * R documentation mode defaults changed
570    Changes/New Features in 5.1.2:
571    * able to use inferior iESS mode to communicate directly with a
572      running S-Plus 4.x process using the Microsoft DDE protocol.  We
573      use the familiar (from Unix ESS) `C-c C-n' and related key
574      sequences to send lines from the S-mode file to the inferior S
575      process.  We continue to edit S input files in ESS[S] mode and
576      transcripts of previous S sessions in ESS Transcript mode.  All
577      three modes know the S language, syntax, and indentation patterns
578      and provide the syntactic highlighting that eases the programming
579      tasks.
581 1.4 Current Features
582 ====================
584    * Languages Supported:
585         * S family (S 3/4, S-PLUS 3.x/4.x/5.x/6.x/7.x, and R)
587         * SAS
589         * BUGS
591         * Stata
593         * XLispStat including Arc and ViSta
595    * Editing source code (S family, SAS, BUGS, XLispStat)
596         * Syntactic indentation and highlighting of source code
598         * Partial evaluation of code
600         * Loading and error-checking of code
602         * Source code revision maintenance
604         * Batch execution (SAS, BUGS)
606         * Use of imenu to provide links to appropriate functions
608    * Interacting with the process (S family, SAS, XLispStat)
609         * Command-line editing
611         * Searchable Command history
613         * Command-line completion of S family object names and file
614           names
616         * Quick access to object lists and search lists
618         * Transcript recording
620         * Interface to the help system
622    * Transcript manipulation (S family, XLispStat)
623         * Recording and saving transcript files
625         * Manipulating and editing saved transcripts
627         * Re-evaluating commands from transcript files
629    * Help File Editing (R)
630         * Syntactic indentation and highlighting of source code.
632         * Sending Examples to running ESS process.
634         * Previewing
636 1.5 Stability
637 =============
639 Versions 5.2.x are meant to be release-quality versions.  While some
640 new features are being introduced, we are cleaning up and improving the
641 interface.  We know about some remaining documentation inconsistencies.
642 Patches or suggested fixes with bug reports are much appreciated!
644 1.6 Requirements
645 ================
647 ESS has been tested with
649    * R >=0.49
651    * S-PLUS 3.3-4, 4.5, 5.0-1, 6.0-2, 7.0, 2000
653    * S4
655    * SAS >=6.12
657    * BUGS 0.5, 0.603
659    * Stata >=6.0
661    * XLispStat >=3.50
663    on the following platforms
665    * Linux (all)
667    * Solaris/SunOS (all)
669    * Microsoft Windows 95/98/NT/2000/XP (R, SPLUS 4.5/6.0-2/7.0/2000,
670      SAS and BUGS)
672    * Apple Mac OS (SAS for OS 9 and R for OS X)
674    with the following versions of emacs
676    * GNU Emacs 20.3-7, 21.1, 21.3-4, 22.0.50-pretesting
678    * XEmacs 21.0, 21.1.13-14, 21.4.0-8, 21.4.9-13(1), 21.4.14-15,
679      21.4.17-18, 21.5.23
681    ---------- Footnotes ----------
683    (1) require the files.el patch to revert-buffer for the Local
684 Variables updating problem
686 1.7 Getting the Latest Version
687 ==============================
689 The latest released version of ESS is always available on the web at:
690 ESS web page (http://ess.r-project.org) or StatLib
691 (http://lib.stat.cmu.edu/general/ESS/)
693    The latest development version of ESS is available via
694 `https://svn.R-project.org/ESS/', the ESS Subversion repository.  If
695 you have a Subversion client (see `http://subversion.tigris.org/'), you
696 can download the sources using:
697      % svn checkout https://svn.r-project.org/ESS/trunk PATH
698    which will put the ESS files into directory PATH.  Later, within
699 that directory, `svn update' will bring that directory up to date.
700 Windows-based tools such as TortoiseSVN are also available for
701 downloading the files.  Alternatively, you can browse the sources with a
702 web browser at: ESS SVN site (https://svn.r-project.org/ESS/trunk).
703 However, please use a subversion client instead to minimize the load
704 when retrieving.
706    If you remove other versions of ESS from your emacs load-path, you
707 can then use the development version by adding the following to .emacs:
709      (load "/path/to/ess-svn/lisp/ess-site.el")
711    Note that https is required, and that the SSL certificate for the
712 Subversion server of the R project is
714      Certificate information:
715       - Hostname: svn.r-project.org
716       - Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT
717       - Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH
718       - Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad
720 (currently, there is no "trusted certificate").  You can accept this
721 certificate permanently and will not be asked about it anymore.
723 1.8 Installation (from tar file)
724 ================================
726 We now discuss installation, which might happen under Unix or Microsoft
727 Windows.  First, we discuss Unix installation.  *Note Unix
728 installation::.
730    For Microsoft Windows Installation please skip to the *Note
731 Microsoft Windows installation::.
733 1.9 Unix installation
734 =====================
736   1. `cd' to a directory where you want to install ESS, creating it if
737      necessary.  This directory will be referred to below as `ESSDIR'.
739   2. Retrieve the latest version from ESS downloads area
740      (http://ess.r-project.org/downloads/ess) to `ESSDIR'.
742   3. Decompress/unarchive the files from the disribution.
743           Either, `gunzip < ess-VERSION.tar.gz | tar xf -',
744           or using GNU tar, `tar zxf ess-VERSION.tar.gz'.
746      The `tar' command will create the subdirectory `ess-VERSION' and
747      install the files there.
749   4. Edit the file `ESSDIR/ess-VERSION/lisp/ess-site.el' as explained
750      in the comments section of that file.
752   5.  Add the line
753           (load "ESSDIR/ess-VERSION/lisp/ess-site")
754      to your user or system installation file (GNU Emacs uses
755      `$HOME/.emacs' and XEmacs uses `$HOME/.xemacs/init.el' for the
756      user initialization file.  GNU Emacs uses `default.el' or
757      `site-init.el' and XEmacs uses `site-start.el' for the system
758      installation file).
760      Alternatively, if `ess-site.el' is in your current `load-path',
761      then:
762           (require 'ess-site)
763      to configure emacs for ESS.
765   6. That's it!  If you are installing just a local copy of ESS for
766      yourself, ESS is now ready to be used.  (The remaining step below
767      is for advanced installation.)  To edit statistical programs, load
768      the files with the requiste extensions (`.sas' for SAS, `.S' for
769      S-PLUS, `.R' for R, and `.lsp' for XLispStat).  To start a
770      statistical process within emacs, such as R, type `M-x R'.
772   7. (OPTIONAL) READ THIS ITEM THOROUGHLY BEFORE STARTING:
774      If you want to place the compiled files in other locations edit the
775      `LISPDIR', `INFODIR' and `ETCDIR' entries in Section 1 of
776      `Makeconf' in the `ESSDIR/ess-VERSION' directory (if you are using
777      XEmacs, then see the XEmacs subsection in Section 1 of `Makeconf').
779      You can compile those files by:
780           make all
782      When that completes successfully, install the compiled files:
783           make install
785      _Note:_ ESS is no longer available as an XEmacs package.  However,
786      ESS will work best if the XEmacs sumo tarball (all XEmacs packages
787      combined) has been installed.  For more information on installing
788      XEmacs packages, see Quickstart Package Guide
789      (http://www.xemacs.org/Documentation/packageGuide.html).
792 1.10 Microsoft Windows installation
793 ===================================
795 For Microsoft Windows installation, please follow the next steps: (see
796 separate instructions above for UNIX *Note Unix installation::.
798   1. `cd' to a directory where you keep emacs lisp files, or create a
799      new directory (for example, `c:\emacs\') to hold the distribution.
800      This directory will be referred to below as "the ESS distribution
801      directory".
803   2. Retrieve the latest zip file (`ess-VERSION.zip') from ESS
804      downloads area (http://ess.r-project.org/downloads/ess) and store
805      it in the ESS distribution directory.  Be aware that http browsers
806      on Windows frequently change the "." and "-" characters in
807      filenames to other punctuation.  Please change the names back to
808      their original form.
810   3. Extract all the files from `ess-VERSION.zip' into the ESS
811      distribution directory.  In Windows Explorer, you can unpack the
812      archive by double clicking on the folder; you should then see a
813      new folder called `ess-VERSION'.  Drag that folder into your ESS
814      distribution directory.
816   4. Add the line
817           (load "C:/emacs/ess-VERSION/lisp/ess-site")
818      to your emacs initialization file.  (GNU Emacs uses the filename
819      `~/.emacs' and XEmacs uses the filename `~/.xemacs/init.el' for
820      the initialization file.  The tilde is recognised by emacs as your
821      HOME directory, i.e. the value of your HOME environment variable.)
822      Replace `VERSION' above with the version number of ESS.  Remember
823      to use forwardslashes `/' rather than `\\' in your filename.
825      After saving your initialization file, ESS is now installed.
826      Start a new emacs and you should be ready to use ESS.  For
827      example, to edit statistical programs, load the files with the
828      requisite extensions (".sas" for SAS, ".S" or "s" or "q" or "Q"
829      for S-PLUS, ".r" or ".R" for R, and ".lsp" for XLispStat).  One
830      further step is needed if you wish to run statistical processes,
831      see below.
833   5. To run statistical processes under ESS, Windows users will need to
834      make sure that the directories for the software they will be using
835      is in the PATH environment variable.  On Windows 9x, add lines
836      similar to the following to your `c:\autoexec.bat' file:
837           path=%PATH%;c:\progra~1\insightful\splus70\cmd
838      On Windows NT/2000/XP, add the directories to the PATH using the
839      `My Computer/Control Panel/System/Advanced/Environment Variables'
840      menu.  Note that the directory containing the program is added to
841      the PATH, not the program itself.  One such line is needed for
842      each software program.  Be sure to use the abbreviation `progra~1'
843      and not the long version with embedded blanks.  Use backslashes
844      "\".
846      An alternative, for R users, is that rather than adjusting the PATH
847      variable, you can add the following to your emacs initialization
848      file (and restart emacs):
849           (setq inferior-R-program-name "C:/progra~1/R/R-2.2.1/bin/Rterm.exe")
850      This assumes that you have installed R-2.2.1 in the default
851      location.  Change the path otherwise to point to other locations.
853      To start the S-PLUS [67].x GUI from ESS under emacs:
854        1. If you use Cygwin bash as your primary shell, then
855                M-x S
856                (or `M-x S+6').
858        2. If you use the MSDOS prompt window as your primary shell, then
859                M-x S+6-msdos
860           You will then be asked for a pathname ("S starting data
861      directory?"), from which to start the process.  The prompt will
862      propose your current directory as the default.  ESS will start the
863      S-PLUS GUI.  There will be slight delay during which emacs is
864      temporarily frozen.  ESS will arrange for communication with the
865      S-PLUS GUI using the DDE protocol.  Send lines or regions from the
866      emacs buffer containing your S program (for example, `myfile.s')
867      to the S-PLUS Commands Window with the `C-c C-n' or `C-c C-r' keys.
868      (If you are still using S-PLUS 4.x or 2000,\ then use `M-x S+4' or
869      `M-x S+4-msdos'.)
871      To start an S-PLUS [67].x session inside an emacs buffer--and
872      without the S-PLUS GUI:
873           M-x Sqpe
874           (or `M-x Sqpe+6').
875      This works with both the bash and msdos shells.  You will then be
876      asked for a pathname ("S starting data directory?"), from which to
877      start the process.  The prompt will propose your current directory
878      as the default.  You get Unix-like behavior, in particular the
879      entire transcript is available for emacs-style search commands.
880      Send lines or regions from the emacs buffer containing your S
881      program (for example, `myfile.s') to the *S+6* buffer with the
882      `C-c C-n' or `C-c C-r' keys.  Interactive graphics are available
883      with Sqpe by using the java library supplied with S-PLUS 6.1 and
884      newer releases.  Enter the commands:
885           library(winjava)
886           java.graph()
887      Graphs can be saved from the `java.graph' device in several
888      formats, but not PostScript.   If you need a PostScript file you
889      will need to open a separate `postscript' device.  (If you are
890      still using S-PLUS 4.x or 2000, then use `M-x Sqpe+4'.)
892      To connect to an already running S-PLUS GUI (started, for example,
893      from the S-PLUS icon):
894           M-x S+6-existing
895      or
896           M-x S+6-msdos-existing
897      You will then be asked for a pathname ("S starting data
898      directory?"), from which to start the process.  The prompt will
899      propose your current directory as the default.  ESS will arrange
900      for communication with the already running S-PLUS GUI using the
901      DDE protocol.  Send lines or regions from the emacs buffer
902      containing your S program (for example, `myfile.s') to the S-PLUS
903      Commands Window with the `C-c C-n' or `C-c C-r' keys.  (If you are
904      still using S-PLUS 4.x or 2000,  then use `M-x S+4-existing' or
905      `M-x S+4-msdos-existing'.)
907      If you wish to run R, you can start it with:
908           M-x R
910      XLispStat can not currently be run with
911           M-x XLS
912      Hopefully, this will change.  However, you can still edit with
913      emacs, and cut and paste the results into the XLispStat *Listener*
914      Window under Microsoft Windows.
916   6. That's it!
919 1.11 Reporting Bugs
920 ===================
922 Please send bug reports, suggestions etc. to
923 <ESS-bugs@stat.math.ethz.ch>
925    The easiest way to do this is within Emacs by typing
927    `M-x ess-submit-bug-report'
929    This also gives the maintainers valuable information about your
930 installation which may help us to identify or even fix the bug.
932    If Emacs reports an error, backtraces can help us debug the problem.
933 Type "M-x set-variable RET debug-on-error RET t RET".  Then run the
934 command that causes the error and you should see a *Backtrace* buffer
935 containing debug information; send us that buffer.
937    Note that comments, suggestions, words of praise and large cash
938 donations are also more than welcome.
940 1.12 Mailing Lists
941 ==================
943 There is a mailing list for discussions and announcements relating to
944 ESS.  Join the list by sending an e-mail with "subscribe ess-help" (or
945 "help") in the body to <ess-help-request@stat.math.ethz.ch>;
946 contributions to the list may be mailed to
947 <ess-help@stat.math.ethz.ch>.  Rest assured, this is a fairly
948 low-volume mailing list.
950    The purposes of the mailing list include
952    *  helping users of ESS to get along with it.
954    *  discussing aspects of using ESS on Emacs and XEmacs.
956    *  suggestions for improvements.
958    *  announcements of new releases of ESS.
960    *  posting small patches to ESS.
962 1.13 Authors
963 ============
965    * A.J. Rossini (mailto:blindglobe@gmail.com)
967    * Richard M. Heiberger (mailto:rmh@temple.edu)
969    * Kurt Hornik (mailto:Kurt.Hornik@R-project.org)
971    * Martin Maechler (mailto:maechler@stat.math.ethz.ch)
973    * Rodney A. Sparapani (mailto:rsparapa@mcw.edu)
975    * Stephen Eglen (mailto:stephen@gnu.org)