ESS[SAS]: somebody forgot about the SUM statement (probably me)
[ess.git] / README
blobad688670ef76071b573302eebfc48df6651d872f
1 1 General Information: README
2 *****************************
4 This is the README file for the distribution of ESS version
6    5.3.7
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.7:
59    * ESS: `ess-default-style' now *is* customizable, i.e.,   changing
60      its value in `~/.emacs' now does have the desired effect.
62    * ESS: `ess-font-lock-mode' is a new variable (default: t) which
63      controls whether font-locking is enabled in ESS buffers.
65    * ESS[R]: for XEmacs on Windows; another tweak to find R versions
67    * ESS[SAS]: font-locking updated for ODS and SAS Bayesian Procedures;
68      a more consistent handling of SAS options by
69      `ess-sas-submit-command-options' which is buffer-local; portable
70      snooze for MS Windows via customize-able `ess-sleep-for' (floats
71      welcome)
73    Changes/New Features in 5.3.6:
74    * ESS: for XEmacs, using "gnuclient" (without a "-q") works for
75      things like fix() after M-x gnuserv-start has been done.
77    * ESS[R]: M-x R-newest should now work in more situations on MS
78      Windows, e.g., when R has been installed in a non-default
79      "ProgramFiles"  directory tree.  In these cases, there's no need
80      to specify the name (and  full path) of the R program anymore.
82    * ESS[R]: For XEmacs, startup (with new tooltip code) works again.
84    Changes/New Features in 5.3.5:
85    * ESS[R] a new defun is available, `M-x R-newest', which will start
86      the newest version of R that it can find on your system.
88    * ESS[R] add Sven Hartenstein's "R function arguments tips"
89      functionality, via new file `../lisp/essd-r-args.el'.   Note that
90      this includes an "electric "("" behavior inside `R-mode'  which is
91      _active by default_ and can be customized via
92      `ess-r-args-electric-paren'; i.e., use `(setq
93      ess-r-args-electric-paren nil)' to turn it off.  Further,
94      `ess-r-args-show-as' allows to switch to the "tooltip" mode.
96    * ESS: functions `ess-get-pdf-viewer' and *-ps-viewer; built on new
97      customizable variables `ess-pdf-viewer-pref' and
98      `ess-ps-viewer-pref'; currently used in `ess-swv-PDF' and  `*-PS'.
100    * ESS[R] Improved `ess-swv-PDF' to run pdf viewer only if  pdflatex
101      was ok
103    * ESS[R] Improved `ess-swv-weave' to start R automatically if  none
104      is running.
106    * ESS: Do no longer ask _which_ ESS process to use if there  is only
107      one.
109    Changes/New Features in 5.3.4:
110    * ESS[R] now better work with options(error=recover); and the new
111      default of CHM help files on windows.
113    * ESS[R] some more cleanup in the "sweave" functions
115    * miscellaneous fixes
117    Changes/New Features in 5.3.3:
118    * ESS[S] fix buglet (5.3.2 only) which left command prompt in
119      "execute buffer" and hence help files.
121    * new customizable variable `ess-display-buffer-reuse-frames' set to
122      true (which changes default behavior) such that execution or help
123      *frames* are reused.
125    Changes/New Features in 5.3.2:
126    * Classic BUGS now supported by `(require 'essd-bugs)' with ESS[BUGS]
127           and JAGS by `(require 'essd-jags)' with ESS[JAGS].  But,
128      only one       of them can be used at a time since they don't play
129      nice together.  Also,       `C-c C-c' is now bound to the function
130      `ess-bugs-next-action'       (`F12' has been retired).  And
131      finally, note that `essl-bug.el'       is deprecated and the
132      replacement is `essl-bugs.el'.
134    * ESS[R] Improved some of the "Sweave-make"  functions (yet scarcely
135      documented) in `ess-swv.el'.
137    * ESS[S] No longer mess with .Last.value (nor in other "languages").
139    Changes/New Features in 5.3.1:
140    * See the docs for 2 ways to install ESS for XEmacs
141        1. by uncommenting the XEmacs part of             Section 1 of
142           `Makeconf' and performing `make install'
144        2. by unpacking either             `ess-5.3.1.tgz' or
145           `ess-5.3.1.zip' into
146           `PREFIX/lib/xemacs/site-packages' on unix or
147           `PREFIX\XEmacs\site-packages' on windows
149    * ESS[R]: fixed bugs so that Rterm.exe can be found by XEmacs
151    * ESS[S]: `ess-toggle-S-assign-key' is slightly changed; in
152      particular, the default `ess-assign-key' is now `C-x ='.
154    * ESS[R]: `M-x R-site-search' is a new (slightly experimental)
155      utility similar to R's `RSiteSearch(..)' but with the advantage of
156      using Emacs' preferred browser, see `browse-url-browser-function'
158    Changes/New Features in 5.3.0:
159    * ESS[BUGS]: sanely re-format statistical output, `.bog', from
160      scientific notation to numbers rounded with 4 decimal places with
161      `M-x ess-bugs-sci-round-to-4-dp'.
163    * The keys for navigating among section headings in help buffers
164      worked, but only for one language per session; they should now
165      work for multiple languages.  (They were also broken on Windows
166      machines.)
168    * ESS[S] long standing buglets in the internal logic for loading
169      lisp code on Windows.  Particularly fixed behavior in help mode
170      with S-plus GUI.
172    * New variable, `ess-use-inferior-program-name-in-buffer-name',
173      which enables using the executable name instead of the dialect
174      name for R. Feature request.
176    * ESS[S] `ess-execute-screen-options' now also works correctly when
177      there is more than one window *side-by-side* in the same frame and
178      runs in the correct buffer also when there is more than one S
179      buffer.
181    * iESS[S] new functions `ess-eval-paragraph-and-step' and
182      `ess-eval-function-or-paragraph-and-step' are bound to keys  `C-c
183      C-p' and `C-c C-c' respectively and to the menu in  ESS-mode; also
184      bound in the help mode (for evaluating examples).
186    * ESS[S] new function `ess-toggle-S-assign-key' allows to assign the
187      " <- " insertion to an arbitrary key.
189    Changes/New Features in 5.2.12:
190    * ESS[SAS]: `M-;' fixed, but the XEmacs function `comment-dwim' may
191      be broken, if so, use `M-x comment-region' and `M-x
192      uncomment-region' instead; only valid PROCs are fontified which is
193      very helpful finding syntax errors (currently supported: BASE,
194      ETS, FSP, GRAPH, IML, INSIGHT and STAT); the "feature" where
195      `F'-keys take you to an empty buffer when the requested
196      destination is a file that does not exist has been fixed, now the
197      request results in a no-op.  Further, sas-mode now also works in
198      simple terminals.
200    * Rterm/Cygwin combination works under Microsoft Windows.
202    * ESS[R]: internal calls use baseenv() instead of NULL and define
203      'baseenv' where needed.
205    * New experimental support for installing ESS.  See the file
206      `lisp/ess-install.el'.
208    Changes/New Features in 5.2.11:
209    * ESS Info entry and `dir' handled more effectively for GNU Emacs
210      users
212    * ESS[SAS]: temporary files created for batch submission of a region
213      are now named based on the current file; see `ess-sas-file-root'
214      for details; all `lag' and `dif' functions now fontified correctly
216    * iESS[SAS]: fixed a few nagging bugs, however, still does not
217      appear to work at this time; please let us know if you have any
218      ideas.
220    * ESS[S]: Support for running other versions of Splus has been added
221      for unix.  Two new variables, `ess-s-versions' and
222      `ess-s-versions-list', are used to tell ESS what other versions of
223      Splus you would like to run.
225    Changes/New Features in 5.2.10:
226    * ESS[R]: ess-r-versions can no longer be customized (since the
227      customization was not taking effect unless customizations were
228      loaded before ESS).  Its value has been changed so that it will
229      also find R executables beginning "R-devel" and "R-patched".  If
230      you wish to change this variable, it must be set in your `.emacs'
231      before ESS is loaded.
233    * Installation with GNU Make enhanced:  unix and unix-like operating
234      systems will now be able to install ESS for all users in either a
235      GNU Emacs site-lisp or an XEmacs package configuration by editing
236      `lisp/ess-site.el' and `Makeconf' accordingly, then issuing `make
237      install'
239    * ESS[S]: Filename completion (inside strings) now also works in
240      XEmacs for R and S-plus.
242    Changes/New Features in 5.2.9:
243    * ESS[R] for Windows:  the \ directory character bug with respect to
244      ess-load-file has been eradicated.
246    * iESS[SAS]: `C-c C-r' and `C-c C-b' once again work as intended and
247      documented.
249    * ESS[S]: M-x ess-fix-EQ-assign is a bit more agressive.
251    * ESS[S]: Imenu now also shows setAs(), etc.
253    * ESS[R]: R function pattern enhanced with underlying code such that
254      `M-C-a' (`ess-beginning-of-function') etc now work for many more
255      cases, including S4 method definitions.
257    * iESS[R]: myOwnhelp(1) no longer wrongly triggers help(1).
259    * ESS[R]: Improved detection of bogus help buffers: valid help
260      buffers containing with the string "no documentation"(e.g. contour)
261      were being treated as bogus.
263    * ESS[R]: In R help buffers, if `options("help.try.all.packages" =
264      TRUE)' then `?rlm' will list which packages rlm is defined in.
265      This help  buffer is not bogus, but instead is now relabelled
266      "*help[R](rlm in  packages)*".
268    * ESS[STA]: add "//" as comment starting character to syntax-table.
270    Changes/New Features in 5.2.8:
271    * iESS: [Tab] completes *file* names "inside string" as in earlier
272      (<= 5.2.3) ESS versions.
274    Changes/New Features in 5.2.7:
275    * If you use Custom to change the variable ess-toolbar-items, the
276      new toolbar is used in all subsequent ESS buffers.
278    * ESS[SAS]: new feature:  if ess-sas-log-max >0 and your .log grows
279      to more than ess-sas-log-max bytes, just the first ess-sas-log-max
280      bytes are refreshed; this is helpful when your .sas program
281      generates lots of error messages and gets too big for emacs to
282      display
284    * ESS[R/S]: `M-;' in R/S editing modes will now indent with either
285      one or two hashes depending on context.
287    * ESS[R]: David Whiting's Sweave extensions (to 'noweb') are now
288      available (from ess-swv.el loaded by default).
290    Changes/New Features in 5.2.6:
291    * Removed non-ASCII characters in a few files.
293    * ESS[R]: now works better when UTF-8 locale is active; in
294      particular, you get correct directional quotes in R's startup
295      message  for R-devel (unstable development version of R 2.1.0)
296      when using  environment variables LANGUAGE=en@quot
297      LC_ALL=en_US.UTF-8
299    * ESS[SAS]: toggling of .log mode improved (`F10'); toggling of .lst
300      mode now also available (`C-F10'); killing all buffers associated
301      with .sas program no longer bound to `C-F10' since its a bit
302      overzealous.
304    * S-Plus 7 for Windows is now recognized.
306    * ESS[S] (incl. R): in auto-fill mode, strings are not wrapped
307      anymore.
309    * ESS[S] (incl. R): font-lock now correctly differs between R and S,
310      e.g., for "_"; both now fontify warning(.) and S does terminate()
311      additionally.
313    * Support for `bell' aka `beep' aka `ding' aka `alarm' in all
314      inferior modes: When \a is output "to the the console" at the
315      beginning of a line, the bell is rung.
317    Changes/New Features in 5.2.5:
318    * ESS[R]: `C-c C-q' or `Quit S' from the menu now should work (again
319      and less klunkily) and do not append `-exited' to the buffer name.
320      Further, the behavior of `(ess-cleanup)', called from ess-quit,
321      now depends on the new customizable variable
322      `ess-S-quit-kill-buffers-p' which defaults to `nil'.
323      Consequently, the question _"Delete all buffers associated with
324      ..?"_ will not be asked anymore by default.
326    * ESS[SAS] - ess-ebcdic-to-ascii-search-and-replace will now work
327      with the `recode' application as well which is available on many
328      platforms
330    * ESS[S] (incl. R): Name completion for slots of S4 objects now
331      works!
333    Changes/New Features in 5.2.4:
334    * The documentation now includes an overview of how to use the emacs
335      TAGS facility for S functions.  (The distribution also used to
336      contain a directory `etc/other/Tags' where a ~1990 version of
337      `etags.c' was distributed; this is no longer relevant and so has
338      been deleted.)
340    * ESS[SAS] - When you are working with EBCDIC files on an ASCII
341      platform, .log NOTEs may display as gibberish since the EBCDIC
342      characters are not converted to ASCII prior to their display.  So,
343      the function ess-ebcdic-to-ascii-search-and-replace is provided for
344      convenience and is bound to `C-F11'.  This function requires the
345      `dd' command (only available on unix or unix-like platforms).
347    * ESS: Completion of object names is now always done dynamically
348      rather than allowing the option of using a pre-computed database
349      (by `ess-create-object-name-db') since modern computers seem fast
350      enough for dynamic completion.  (We expect few users, if any, have
351      been using the pre-computed database method.)
353    * ESS: object completion in iESS buffers running on Windows was very
354      slow (for GNU Emacs, but not XEmacs) and has now been fixed.
355      Further, it was more or less broken for all versions of S-plus 6.x,
356      and has been fixed to work everywhere but with the Windows' GUI of
357      S-plus.  The list of objects now shows unique names also when an
358      object appears more than once in the search path.
360    * ESS[R]: Completion of object names now also includes those
361      starting with ".".
363    Changes/New Features in 5.2.3:
364    * ESS: When new inferior ESS processes are created, by default they
365      will replace the current buffer (this restores behavior from pre
366      5.2.0). If you wish new ESS processes to start in another window
367      of the current frame, set inferior-ess-same-window to nil.
369    * New variables inferior-Splus-args and inferior-R-args provide a
370      way to pass command line arguments to starting S and R processes.
372    Changes/New Features in 5.2.2:
373    * bug-fixes for 5.2.1 (require 'executable), html docs, etc.
375    * ess-lisp-directory/../doc/info added to Info-directory-list if
376      ess-info not found by info
378    * ESS[R]: If you have other versions of R on your exec-path, such as
379      "R-1.8.1" with Unix or "rw1081" with Windows, ESS will find them
380      and create appropriate functions, such as `M-x R-1.8.1' or `M-x
381      rw1081', for calling them.  By default only Unix programs
382      beginning "R-1" and "R-2" and Windows programs parallel to the
383      version of R in your exec-path will be found, but see
384      ess-r-versions and ess-rterm-versions for ways to find other
385      versions of R.
387    * ESS[R]: Other versions of R, such as "R-1.8.1" on Unix and
388      "rw1081" on Windows, are added to the "ESS / Start Process /
389      Other" menu.
391    * ESS[S]: If you have other versions of S-Plus on your Windows
392      computer, such as S-Plus 6.1 or S-Plus 4.5, ESS will find them and
393      create appropriate functions, such as `M-x splus61', for calling
394      the console version (Sqpe) inside an emacs buffer.  By default only
395      programs installed in the default location will be found, but see
396      ess-SHOME-versions for ways to find other versions of S-Plus.
398    * ESS[S]: Other versions of Sqpe on Windows, such as "splus61", are
399      added to the "ESS / Start Process / Other" menu.
401    * ESS[R]: (bug fix) ess-quit (bound to `C-c C-q') should now quit the
402      inferior R process, when issued from either the inferior buffer,
403      or from a .R buffer.
405    Changes/New Features in 5.2.1:
406    * ESS[S] (R and S-plus): now have toolbar support with icons to
407      evaluate code in the inferior process or to switch there.  This
408      code is experimental and likely to change as XEmacs/Emacs issues
409      get resolved. The toolbar should be enabled if your Emacs displays
410      images, but can be disabled with the variable ess-use-toolbar.
411      Thanks to David Smith from Insightful for the S-plus logo.
413    * ESS[SAS]: ess-sas-graph-view (`F12') enhanced; you can specify
414      external file viewers for each graphics file type via the alist
415      ess-sas-graph-view-viewer-alist; also .jpg/.gif are now handled by
416      image-mode on XEmacs, if available, otherwise by graphics
417      primitives as before
419    Changes/New Features in 5.2.0:
420    * ESS[BUGS]:  new info documentation!  now supports interactive
421      processing thanks to Aki Vehtari (mailto:Aki.Vehtari@hut.fi); new
422      architecture-independent unix support as well as support for BUGS
423      v. 0.5
425    * ESS[SAS]:  convert .log to .sas with ess-sas-transcript; info
426      documentation improved; Local Variable bug fixes; SAS/IML
427      statements/functions now highlighted; files edited remotely by
428      ange-ftp/EFS/tramp are recognized and pressing SUBMIT opens a
429      buffer on the remote host via the local variable
430      ess-sas-shell-buffer-remote-init which defaults to "ssh"; changed
431      the definition of the variable ess-sas-edit-keys-toggle to boolean
432      rather than 0/1; added the function ess-electric-run-semicolon
433      which automatically reverse indents lines containing only "run;";
434      `C-F1' creates MS RTF portrait from the current buffer; `C-F2'
435      creates MS RTF landscape from the current buffer; `C-F9' opens a
436      SAS DATASET with PROC INSIGHT rather than PROC FSVIEW; "inferior"
437      aliases for SAS batch:  `C-c C-r' for submit region, `C-c C-b' for
438      submit buffer, `C-c C-x' for goto .log; `C-c C-y' for goto .lst
440    * ESS[S]: Pressing underscore ("_") once inserts " <- " (as before);
441      pressing underscore twice inserts a literal underscore.  To stop
442      this smart behaviour, add "(ess-toggle-underscore nil)" to your
443      .emacs after ess-site has been loaded;
444      ess-dump-filename-template-proto (new name!) now can be customized
445      successfully (for S language dialects); Support for Imenu has been
446      improved; set ess-imenu-use-S to non-nil to get an "Imenu-S" item
447      on your menubar; ess-help: Now using nice underlines (instead of
448      `nuke-* ^H_')
450    * ESS[R]:  After (require 'essa-r), `M-x ess-r-var' allows to load
451      numbers from any Emacs buffer into an existing *R* process; `M-x
452      ess-rdired' gives a "directory editor" of R objects; fixed
453      ess-retr-lastvalue-command, i.e. .Last.value bug (thanks to David
454      Brahm)
456    * ESS: Support for creating new window frames has been added to ESS.
457      Inferior ESS processes can be created in dedicated frames by
458      setting inferior-ess-own-frame to t.  ESS help buffers can also
459      open in new frames; see the documentation for ess-help-own-frame
460      for details.  (Thanks to Kevin Rodgers for contributing code.)
462    Changes/New Features in 5.1.24:
463    * The version number is now correct even inside ESS/Emacs
465    Changes/New Features in 5.1.23:
466    * Minor more Makefile clean up.
468    Changes/New Features in 5.1.22:
469    * Besides info documentation, PDF and HTML documentation are also
470      provided (instead of built using "make") and available on the web
471      as well; see ESS web page (http://ess.r-project.org/) and StatLib
472      (http://lib.stat.cmu.edu/general/ESS/doc)
474    * Now that info documentation is available, the README.* files are
475      no longer supported.  However, they are still distributed for what
476      it's worth.
478    * ESS is now an XEmacs package!  See XEmacs Installation HOWTO
479      (http://www.xemacs.org/Install/index.html) for details
480      (specifically, items 10-15).
482    * ESS[SAS]: more user-friendly enhancements for remote SAS batch
483      jobs with Kermit file transfers (LOG and OUTPUT function key
484      features now supported).  Multiple shells now supported so you can
485      run SAS on different computers from different buffers by setting
486      the buffer-local variable ess-sas-shell-buffer to unique buffer
487      names.
489    * Major re-vamping of Makefile/Makeconf.
491    Changes/New Features in 5.1.21:
492    * ESS[SAS]: info documentation now available!, see ESS->Help for
493      SAS; `F12' opens GSASFILE nearest point for viewing either within
494      emacs, when available, or via an external viewer; more syntax
495      highlighting keywords; more enhancements for remote SAS batch jobs
496      with Kermit; new framework for remote SAS interactive jobs, see
497      ess-remote
499    * ESS[S]: info documentation now available!, see ESS->Help for the S
500      family
502    * Makefile: tag now independent of rel; info files made by
503      doc/Makefile and installed in new info sub-directory
505    Changes/New Features in 5.1.20:
506    * New `options()$STERM' in the S dialects (S, S-Plus, R).  The S
507      program can determine the environment in which it is currently
508      running.  ESS sets the option to `iESS' or `ddeESS' when it starts
509      an S language process.  We recommend other specific values for S
510      language processes that ESS does not start.
512    * New `ess-mouse-me' function, assigned to S-mouse-3 by default.
513      User may click on a word or region and then choose from the menu
514      to display the item, or a summary, or a plot, etc.  This feature
515      is still under development.
517    * GNU Emacs 21.1 is now supported (fixed for S dialects, SAS & BUGS),
518      (some from Stephen Eglen).
520    * XEmacs 21.x is now supported (fixed w32-using-nt bug)
522    * XEmacs on Win (NT) is better supported.
524    * Workaround for bug in Sqpe+6 (S-PLUS 6 for Win).
526    * should now work even when imenu is not available (for old
527      XEmacsen).
529    * ESS[SAS]: XEmacs-Imenu fix; `C-TAB' is globalized along with your
530      function-key definitions, if specified; you can specify your SAS
531      library definitions outside of autoexec.sas for ess-sas-data-view
532      with SAS code placed in the variable ess-sas-data-view-libname,
533      also the dataset name is defaulted to the nearest permanent dataset
534      to point; Speedbar support now works for permanent datasets, please
535      ignore first./last.; new font-locking is now the default with more
536      improvements for font-locking PROCs, macro statements, * ; and %* ;
537      comments; you can toggle sas-log-mode with `F10' which will
538      font-lock your .log (if it isn't too big); submit remote .sas
539      files accessed with ange-ftp, EFS or Tramp (Kermit is
540      experimental) by setting ess-sas-submit-method to 'sh;
541      ess-sas-submit-command and ess-sas-submit-command-options are
542      buffer-local so you can have local file variable sections at the
543      end of your .sas files to request different executables or specify
544      special options and the local file variables are re-read at submit
545      instead of only at file open so that if you make a change it is
546      picked up immediately;
548    * ESS[BUGS]: font-lock with `in' fixed.
550    * for STATA: font-lock bug fixed.
552    * for Rd mode: `C-c C-v' and `switch-process' in menu.  further,
553      `C-c C-f' prefix (Rd-font) for inserting or surrounding a word by
554      things such as \code{.}, \code{\link{.}}, \emph{.} etc.
556    * new functions (ess-directory-function) and (ess-narrow-to-defun)
557      ess-directory <-> default-directory logic (Jeff Mincy).
559    * Re-organized Makefile and fixed a few bugs.
561    Changes/New Features in 5.1.19:
562    * S+6 now supported (Tony Rossini (Unix) and Rich Heiberger
563      (Windows))
565    * New BUGS support through ESS[BUGS] mode (Rodney Sparapani)
566      Templates assist you in writing .bug and .cmd code (.cmd and .log
567      are replaced by .bmd and .bog to avoid emacs extension collisions).
568      Substitution" parameters facilitate "automagic" generation of
569      data...in" and "init...in" filenames, "const N=" from your data
570      file and "monitor()/stats()" commands.  Activated by pressing
571      `F12'.
573    * Fixes for `ess-smart-underscore' SAS breakage (Rich Heiberger)
575    * You can change between PC and Unix, local and global SAS
576      function-key definitions interactively (Rich Heiberger)
578    * `C-Submit' a highlighted region to SAS batch (Rodney Sparapani)
580    * New and improved SAS syntax highlighting (Rodney Sparapani) To get
581      the new functionality, set ess-sas-run-make-regexp to nil.  Also
582      available in .log files via `F10'.
584    * Open a permanent SAS dataset for viewing via `F9' (Rodney
585      Sparapani) You must have the library defined in autoexec.sas for
586      it to work.
588    * User-friendly defaults for `sas-program',
589      `ess-sas-batch-pre-command' and `ess-sas-batch-post-command' as
590      well Customize support for these and other ESS[SAS] variables
591      (Rodney Sparapani)
593    * `ess-sas-suffix-2' now defaults to .dat via `F11' (Rodney
594      Sparapani)
596    * Emacs/XEmacs, Unix/Windows issues collectively handled in
597      ess-emcs.el
599    * defadvice solves problem of missing *ESS* (thanks to Jeff Mincy)
601    * Improved manual a bit by including things that were only in
602      `README'.
604    Changes/New Features in 5.1.18:
605    * New `ess-smart-underscore' function, now assigned to "_" by
606      default.  Inserts `ess-S-assign' (customizable " <- "), unless
607      inside string and comments where plain "_" is used instead. (MM)
609    * Fixes for longstanding interactive SAS breakage (RMH)
611    Changes/New Features in 5.1.17:
612    * Documentation for Windows Installation (Rich Heiberger)
614    * removal of ess-vars, finalization of customize support (in the
615      sense that there is no more use of ess-vars, but that we need to
616      fix ess-cust) (AJ Rossini)
618    * Many small (and large) fixes/contributions (MMaechler)
620    * addition of the "S-equal" variable and provide `M-x
621      ess-add-MM-keys' a way to remap "_" to `ess-S-assign', typically "
622      <- ", but customizable. (MMaechler)
624    Changes/New Features in 5.1.16:
625    * BUG FIXES
627    * Better SAS support
629    Changes/New Features in 5.1.15:
630    * BUG FIXES
632    Changes/New Features in 5.1.14:
633    * Yet more fixes to SAS mode, (Rich Heiberger and Rodney Sparapani)
635    * Customize support (for most Emacsen which support it) (AJRossini)
637    * ARC and ViSta support out of the box, and fixes for XLispStat
638      (AJRossini)
640    Changes/New Features in 5.1.13:
641    * Version numbering finally all depending on the ./VERSION file,
642      thanks to Martin Maechler.
644    * Yet more fixes to SAS mode, thanks to Rich Heiberger.
646    Changes/New Features in 5.1.12:
647    * Splus 5.1 stabilized, thanks to Martin Maechler, Bill Venables,
648      Chuck Taylor, and others.
650    * More fixes to SAS mode, thanks to Rodney Sparapani and Rich
651      Heiberger.
653    Changes/New Features in 5.1.11:
654    * More fixes to Stata mode, thanks to Brendan Halpin
655      (mailto:brendan@essex.ac.uk).
657    * fixed bugs in ESS-elsewhere, thanks to many testers
659    * README.SPLUS4WIN has DETAILED instructions for S-PLUS 2000, thanks
660      to David Brahm (mailto:brahm@alum.mit.edu).
662    * Fixes to SAS mode, thanks to Rodney Sparapani
664    Changes/New Features in 5.1.10:
665    * More fixes to Stata mode
667    * primitive generic version of ESS-elsewhere
669    * Small fixes to SAS/Stata.
671    Changes/New Features in 5.1.9:
672    * Stata mode works
674    * Literate Data Analysis using Noweb works
676    Changes/New Features in 5.1.8:
677    * Bug fixes
679    * R documentation mode defaults changed
681    Changes/New Features in 5.1.2:
682    * able to use inferior iESS mode to communicate directly with a
683      running S-Plus 4.x process using the Microsoft DDE protocol.  We
684      use the familiar (from Unix ESS) `C-c C-n' and related key
685      sequences to send lines from the S-mode file to the inferior S
686      process.  We continue to edit S input files in ESS[S] mode and
687      transcripts of previous S sessions in ESS Transcript mode.  All
688      three modes know the S language, syntax, and indentation patterns
689      and provide the syntactic highlighting that eases the programming
690      tasks.
692 1.4 Current Features
693 ====================
695    * Languages Supported:
696         * S family (S 3/4, S-PLUS 3.x/4.x/5.x/6.x/7.x/8.x, and R)
698         * SAS
700         * BUGS/JAGS
702         * Stata
704         * XLispStat including Arc and ViSta
706    * Editing source code (S family, SAS, BUGS/JAGS, XLispStat)
707         * Syntactic indentation and highlighting of source code
709         * Partial evaluation of code
711         * Loading and error-checking of code
713         * Source code revision maintenance
715         * Batch execution (SAS, BUGS/JAGS)
717         * Use of imenu to provide links to appropriate functions
719    * Interacting with the process (S family, SAS, XLispStat)
720         * Command-line editing
722         * Searchable Command history
724         * Command-line completion of S family object names and file
725           names
727         * Quick access to object lists and search lists
729         * Transcript recording
731         * Interface to the help system
733    * Transcript manipulation (S family, XLispStat)
734         * Recording and saving transcript files
736         * Manipulating and editing saved transcripts
738         * Re-evaluating commands from transcript files
740    * Help File Editing (R)
741         * Syntactic indentation and highlighting of source code.
743         * Sending Examples to running ESS process.
745         * Previewing
747 1.5 Stability
748 =============
750 Versions 5.3.x are meant to be release-quality versions.  While some
751 new features are being introduced, we are cleaning up and improving the
752 interface.  We know about some remaining documentation inconsistencies.
753 Patches or suggested fixes with bug reports are much appreciated!
755 1.6 Requirements
756 ================
758 ESS has been tested with
760    * R >=0.49
762    * S-PLUS 3.3-4, 4.5, 2000, 5.0-1, 6.0-2, 7.0, 8.0
764    * S4
766    * SAS >=6.12
768    * BUGS 0.5, 0.6
770    * JAGS 0.9, 1.0 (not quite working yet, patches welcome)
772    * Stata >=6.0 (recent Stata support limited due to changes in Stata)
774    on the following platforms
776    * Linux/x86 (all)
778    * Solaris/SPARC (all)
780    * MS Windows 98/NT/2000/XP (R, SPLUS 4.5/2000/6.0-2/7.0/8.0, SAS
781      interactive only, and BUGS 0.6)
783    * Apple Mac OS X 10.3-4 (R, JAGS)
785    with the following versions of emacs
787    * GNU Emacs 20.3-7, 21.1, 21.3-4, 22.1
789    * XEmacs 21.4.0-8, 21.4.9-13(1), 21.4.14-15, 21.4.17-21 (betas not
790      supported, but 21.5.23+ may work)
792    ---------- Footnotes ----------
794    (1) require the files.el patch to revert-buffer for the Local
795 Variables updating problem
797 1.7 Getting the Latest Version
798 ==============================
800 The latest released version of ESS is always available on the web at:
801 ESS web page (http://ess.r-project.org) or StatLib
802 (http://lib.stat.cmu.edu/general/ESS/)
804    The latest development version of ESS is available via
805 `https://svn.R-project.org/ESS/', the ESS Subversion repository.  If
806 you have a Subversion client (see `http://subversion.tigris.org/'), you
807 can download the sources using:
808      % svn checkout https://svn.r-project.org/ESS/trunk PATH
809    which will put the ESS files into directory PATH.  Later, within
810 that directory, `svn update' will bring that directory up to date.
811 Windows-based tools such as TortoiseSVN are also available for
812 downloading the files.  Alternatively, you can browse the sources with a
813 web browser at: ESS SVN site (https://svn.r-project.org/ESS/trunk).
814 However, please use a subversion client instead to minimize the load
815 when retrieving.
817    If you remove other versions of ESS from your emacs load-path, you
818 can then use the development version by adding the following to .emacs:
820      (load "/path/to/ess-svn/lisp/ess-site.el")
822    Note that https is required, and that the SSL certificate for the
823 Subversion server of the R project is
825      Certificate information:
826       - Hostname: svn.r-project.org
827       - Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT
828       - Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH
829       - Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad
831 (currently, there is no "trusted certificate").  You can accept this
832 certificate permanently and will not be asked about it anymore.
834 1.8 Installation (from tar file)
835 ================================
837 1.9 Unix installation
838 =====================
840   1.  `cd' to a directory where you keep emacs lisp files, or create a
841      new directory (for example, `$HOME/emacs') to hold the
842      distribution.  This directory will be referred to below as "the
843      ESS distribution directory".
845      _Note for XEmacs packages:_ ESS is no longer available as an
846      XEmacs package.  But, you can still install ESS into the XEmacs
847      package system by choosing
848      `ESSDIR'=`PREFIX/lib/xemacs/site-packages'.  ESS requires that the
849      XEmacs sumo tarball (all XEmacs packages combined) also be
850      installed.  For information on installing XEmacs packages, follow
851      this link: Quickstart Package Guide
852      (http://www.xemacs.org/Documentation/packageGuide.html).
854   2. Retrieve the latest version from ESS downloads area
855      (http://ess.r-project.org/downloads/ess) to `ESSDIR'.
857   3. Extract the files from the disribution.
858           If you are using GNU tar, `tar zxf ess-VERSION.tgz'.
859           Otherwise, `gunzip < ess-VERSION.tgz | tar xf -',
861      The `tar' command will create the subdirectory `ess-VERSION' and
862      install the files there.
864   4. Edit the file `ESSDIR/ess-VERSION/lisp/ess-site.el' as explained
865      in the comments section of that file.
867   5. If you are using GNU Emacs add the line
868           (load "ESSDIR/ess-VERSION/lisp/ess-site")
869      to `$HOME/.emacs'.  For XEmacs, if you followed the XEmacs package
870      system installation advice, add the line
871           (require 'ess-site)
872      to `$HOME/.xemacs/init.el'.  Otherwise, for XEmacs, add the line
873           (load "ESSDIR/ess-VERSION/lisp/ess-site")
874      to `$HOME/.xemacs/init.el'.
876   6. That's it!  ESS is now ready to use.  (The remaining step below is
877      only for a custom installation.)  To edit statistical programs,
878      just open files with the requisite extensions (`.R' for R, `.sas'
879      for SAS, `.bug' for BUGS, etc.).  To start a statistical process
880      within emacs, such as R, type `M-x R'.
882   7. (OPTIONAL) READ THIS ITEM THOROUGHLY BEFORE STARTING:
884      If you want to place the compiled files in other locations edit the
885      `LISPDIR', `INFODIR' and `ETCDIR' entries in Section 1 of
886      `Makeconf' in the `ESSDIR/ess-VERSION' directory (if you are using
887      XEmacs, then uncomment the XEmacs subsection in Section 1).
889      You can compile those files by:
890           make all
892      When that completes successfully, install the compiled files:
893           make install
896 1.10 Microsoft Windows installation
897 ===================================
899 For Microsoft Windows installation, please follow the next steps.
901   1. `cd' to a directory where you keep emacs lisp files, or create a
902      new directory (for example, `c:\emacs\') to hold the distribution.
903      This directory will be referred to below as "the ESS distribution
904      directory".
906      _Note for XEmacs packages:_ ESS is no longer available as an XEmacs
907      package. But, you can still install ESS into the XEmacs package
908      system by choosing `ESSDIR'=`PREFIX\XEmacs\site-packages'.  ESS
909      requires that the XEmacs sumo tarball (all XEmacs packages
910      combined) also be installed.  For information on installing XEmacs
911      packages, follow this link: Quickstart Package Guide
912      (http://www.xemacs.org/Documentation/packageGuide.html).
914   2. Retrieve the latest zip file (`ess-VERSION.zip') from ESS
915      downloads area (http://ess.r-project.org/downloads/ess) and store
916      it in the ESS distribution directory.  Be aware that http browsers
917      on Windows frequently change the "." and "-" characters in
918      filenames to other punctuation.  Please change the names back to
919      their original form.
921   3. Extract all the files from `ess-VERSION.zip' into the ESS
922      distribution directory as `c:\emacs\ess-VERSION\'.  (It is possible
923      to unpack the zip archive in Windows Explorer by double clicking
924      on the folder; you should then see a new folder called
925      `ess-VERSION'.  Drag that folder into your ESS distribution
926      directory.)
928   4. If you are using GNU Emacs add the line
929           (load "ESSDIR/ess-VERSION/lisp/ess-site")
930      to `%HOME%/.emacs'.  For XEmacs, if you followed the XEmacs
931      package system installation advice, add the line
932           (require 'ess-site)
933      to `%HOME%/.xemacs/init.el'.  Otherwise, for XEmacs, add the line
934           (load "ESSDIR/ess-VERSION/lisp/ess-site")
935      to `%HOME%/.xemacs/init.el'.  _Note:_ Both GNU Emacs and XEmacs
936      require that the HOME environment variable be set on your system,
937      otherwise, your initialization file will not be utilized, and
938      therefore, ESS will not work.
940      After saving your initialization file, ESS is now installed.
941      Start a new emacs and you should be ready to use ESS.  For
942      example, to edit statistical programs, load the files with the
943      requisite extensions (".sas" for SAS, ".S" or "s" or "q" or "Q"
944      for S-PLUS, ".r" or ".R" for R, and ".lsp" for XLispStat).  One
945      further step is needed if you wish to run statistical processes,
946      see below.
948   5. To run statistical processes under ESS, Windows users will need to
949      make sure that the directories for the software they will be using
950      is in the PATH environment variable.  On Windows 9x, add lines
951      similar to the following to your `c:\autoexec.bat' file:
952           path=%PATH%;c:\progra~1\insightful\splus70\cmd
953      On Windows NT/2000/XP, add the directories to the PATH using the
954      `My Computer/Control Panel/System/Advanced/Environment Variables'
955      menu.  Note that the directory containing the program is added to
956      the PATH, not the program itself.  One such line is needed for
957      each software program.  Be sure to use the abbreviation `progra~1'
958      and not the long version with embedded blanks.  Use backslashes
959      "`\'".
961      An alternative, for R users, is that rather than adjusting the PATH
962      variable, you can add the following to your emacs initialization
963      file (and restart emacs):
964           (setq inferior-R-program-name "C:/progra~1/R/R-2.2.1/bin/Rterm.exe")
965      This assumes that you have installed R-2.2.1 in the default
966      location.  Change the path otherwise to point to other locations.
968      Windows users who place S-PLUS anywhere other than the default
969      location will also need to add the following three lines (properly
970      adjusted for their location) to their `%HOME%/.emacs' or
971      `%HOME%/.xemacs/init.el' file:
972           (setq-default inferior-S+6-program-name
973               "c:/progra~1/Insightful/SPLUS70/cmd/Splus")
974           (setq-default inferior-Sqpe+6-SHOME-name
975               "c:/progra~1/Insightful/SPLUS70")
976           (setq-default inferior-Sqpe+6-program-name
977               "c:/progra~1/Insightful/SPLUS70/cmd/Sqpe.exe")
978      The above example uses the default location of S-PLUS in
979      `c:/progra~1/Insightful'.  Please note that ESS considers S-PLUS
980      6, 7, and 8 to be variants of S+6.
982      These users may also need to modify the emacs variable
983      `ess-SHOME-versions' to match their installation in order to get
984      the full set of S-PLUS versions on their machine into the `ESS'
985      menu.
987      To start the S-PLUS [678].x GUI from ESS under emacs:
988        1. If you use Cygwin bash as your primary shell, then
989                M-x S
990                (or `M-x S+6').
992        2. If you use the MSDOS prompt window as your primary shell, then
993                M-x S+6-msdos
994           You will then be asked for a pathname ("S starting data
995      directory?"), from which to start the process.  The prompt will
996      propose your current directory as the default.  ESS will start the
997      S-PLUS GUI.  There will be slight delay during which emacs is
998      temporarily frozen.  ESS will arrange for communication with the
999      S-PLUS GUI using the DDE protocol.  Send lines or regions from the
1000      emacs buffer containing your S program (for example, `myfile.s')
1001      to the S-PLUS Commands Window with the `C-c C-n' or `C-c C-r' keys.
1002      (If you are still using S-PLUS 4.x or 2000,\ then use `M-x S+4' or
1003      `M-x S+4-msdos'.)
1005      To start an S-PLUS [678].x session inside an emacs buffer--and
1006      without the S-PLUS GUI:
1007           M-x Sqpe
1008           (or `M-x Sqpe+6').
1009      This works with both the bash and msdos shells.  You will then be
1010      asked for a pathname ("S starting data directory?"), from which to
1011      start the process.  The prompt will propose your current directory
1012      as the default.  You get Unix-like behavior, in particular the
1013      entire transcript is available for emacs-style search commands.
1014      Send lines or regions from the emacs buffer containing your S
1015      program (for example, `myfile.s') to the *S+6* buffer with the
1016      `C-c C-n' or `C-c C-r' keys.  Interactive graphics are available
1017      with Sqpe by using the java library supplied with S-PLUS 6.1 and
1018      newer releases.  Enter the commands:
1019           library(winjava)
1020           java.graph()
1021      Graphs can be saved from the `java.graph' device in several
1022      formats, but not PostScript.   If you need a PostScript file you
1023      will need to open a separate `postscript' device.  (If you are
1024      still using S-PLUS 4.x or 2000, then use `M-x Sqpe+4'.)
1026      To connect to an already running S-PLUS GUI (started, for example,
1027      from the S-PLUS icon):
1028           M-x S+6-existing
1029      or
1030           M-x S+6-msdos-existing
1031      You will then be asked for a pathname ("S starting data
1032      directory?"), from which to start the process.  The prompt will
1033      propose your current directory as the default.  ESS will arrange
1034      for communication with the already running S-PLUS GUI using the
1035      DDE protocol.  Send lines or regions from the emacs buffer
1036      containing your S program (for example, `myfile.s') to the S-PLUS
1037      Commands Window with the `C-c C-n' or `C-c C-r' keys.  (If you are
1038      still using S-PLUS 4.x or 2000,  then use `M-x S+4-existing' or
1039      `M-x S+4-msdos-existing'.)
1041      If you wish to run R, you can start it with:
1042           M-x R
1044      XLispStat can not currently be run with
1045           M-x XLS
1046      Hopefully, this will change.  However, you can still edit with
1047      emacs, and cut and paste the results into the XLispStat *Listener*
1048      Window under Microsoft Windows.
1050   6. That's it!
1053 1.11 Reporting Bugs
1054 ===================
1056 Please send bug reports, suggestions etc. to
1057 <ESS-bugs@stat.math.ethz.ch>
1059    The easiest way to do this is within Emacs by typing
1061    `M-x ess-submit-bug-report'
1063    This also gives the maintainers valuable information about your
1064 installation which may help us to identify or even fix the bug.
1066    If Emacs reports an error, backtraces can help us debug the problem.
1067 Type "M-x set-variable RET debug-on-error RET t RET".  Then run the
1068 command that causes the error and you should see a *Backtrace* buffer
1069 containing debug information; send us that buffer.
1071    Note that comments, suggestions, words of praise and large cash
1072 donations are also more than welcome.
1074 1.12 Mailing Lists
1075 ==================
1077 There is a mailing list for discussions and announcements relating to
1078 ESS.  Join the list by sending an e-mail with "subscribe ess-help" (or
1079 "help") in the body to <ess-help-request@stat.math.ethz.ch>;
1080 contributions to the list may be mailed to
1081 <ess-help@stat.math.ethz.ch>.  Rest assured, this is a fairly
1082 low-volume mailing list.
1084    The purposes of the mailing list include
1086    *  helping users of ESS to get along with it.
1088    *  discussing aspects of using ESS on Emacs and XEmacs.
1090    *  suggestions for improvements.
1092    *  announcements of new releases of ESS.
1094    *  posting small patches to ESS.
1096 1.13 Authors
1097 ============
1099    * A.J. Rossini (mailto:blindglobe@gmail.com)
1101    * Richard M. Heiberger (mailto:rmh@temple.edu)
1103    * Kurt Hornik (mailto:Kurt.Hornik@R-project.org)
1105    * Martin Maechler (mailto:maechler@stat.math.ethz.ch)
1107    * Rodney A. Sparapani (mailto:rsparapa@mcw.edu)
1109    * Stephen Eglen (mailto:stephen@gnu.org)