1 ANNOUNCING ESS
****************

The ESS Developers proudly announce the release of ESS 17.11

   Emacs Speaks Statistics (ESS) provides an intelligent, consistent
interface between the user and the software.  ESS interfaces with
R/S-PLUS, SAS, BUGS/JAGS, Stata and other statistical analysis packages
under the UNIX, GNU Linux, Microsoft Windows, macOS and other operating
systems.  ESS is a package for the GNU Emacs and XEmacs text editors
whose features ESS uses to streamline the creation and use of
statistical software.  ESS knows the syntax and grammar of statistical
analysis packages and provides consistent display and editing features
based on that knowledge.  ESS assists in interactive and batch execution
of statements written in these statistical analysis languages.

   ESS is freely available under the GNU General Public License (GPL).
Please read the file COPYING which comes with the distribution, for more
information about the license.  For more detailed information, please
read the README files that come with ESS.

1.1 Getting the Latest Version
==============================

1.1.1 Source code
-----------------

You may download the latest ESS release source code from the ESS web
page (http://ess.r-project.org) or StatLib
(http://lib.stat.cmu.edu/general/ESS/)

1.1.2 Git for ESS development
-----------------------------

Developers and experimentation on ESS mainly happens through git.  ESS
is currently hosted on Github: <https://github.com/emacs-ess/ESS>.

1.2 Current Features
====================

   * Languages Supported:
        * S family (R, S, and S+ AKA S-PLUS)
        * SAS
        * BUGS/JAGS
        * Stata
        * Julia
   * Editing source code (S family, SAS, BUGS/JAGS, Stata, Julia)
        * Syntactic indentation and highlighting of source code
        * Partial evaluation of code
        * Loading and error-checking of code
        * Source code revision maintenance
        * Batch execution (SAS, BUGS/JAGS)
        * Use of imenu to provide links to appropriate functions
   * Interacting with the process (R family, SAS, Stata, Julia)
        * Command-line editing
        * Searchable Command history
        * Command-line completion of R family object names and file
          names
        * Quick access to object lists and search lists
        * Transcript recording
        * Interface to the help system
   * Transcript manipulation (S family, Stata)
        * Recording and saving transcript files
        * Manipulating and editing saved transcripts
        * Re-evaluating commands from transcript files
   * Interaction with Help Pages and other Documentation (R)
        * Fast Navigation
        * Sending Examples to running ESS process.
        * Fast Transfer to Further Help Pages
   * Help File Editing (R)
        * Syntactic indentation and highlighting of source code.
        * Sending Examples to running ESS process.
        * Previewing

1.3 Requirements
================

ESS is most likely to work with current/recent versions of the following
statistical packages: R/S-PLUS, SAS, Stata, OpenBUGS and JAGS.

   ESS supports current, and recent, stable versions of GNU Emacs
(currently, 24.3 or higher; alpha/beta/pre-release versions are NOT
SUPPORTED).

   Due to XEmacs lacking some features that ESS requires, ESS support of
XEmacs ended with ESS 12.04-4.

   To build the PDF documentation, you will need a version of TeX Live
or texinfo that includes texi2dvi (BEWARE: recent TeX Live, and some
texinfo RPMs, do NOT include texi2dvi).

1.4 Stability
=============

All recent released versions are meant to be release-quality versions.
While some new features are being introduced, we are cleaning up and
improving the interface.  We know that there are many remaining
opportunities for documentation improvements, but all contributors are
volunteers and time is precious.  Patches or suggested fixes with bug
reports are much appreciated!

1.5 Mailing List
================

There is a mailing list for discussions and announcements relating to
ESS. Join the list by sending an e-mail with "subscribe ess-help" (or
"help") in the body to <ess-help-request@r-project.org>; contributions
to the list may be mailed to <ess-help@r-project.org>.  Rest assured,
this is a fairly low-volume mailing list.

   The purposes of the mailing list include

   * helping users of ESS to get along with it.
   * discussing aspects of using ESS on Emacs and XEmacs.
   * suggestions for improvements.
   * announcements of new releases of ESS.
   * posting small patches to ESS.

1.6 Reporting Bugs
==================

Please send bug reports, suggestions etc.  to <ESS-bugs@r-project.org>,
or post them on our github issue tracker
(https://github.com/emacs-ess/ESS/issues)

   The easiest way to do this is within Emacs by typing

   'M-x ess-submit-bug-report'

   This also gives the maintainers valuable information about your
installation which may help us to identify or even fix the bug.

   If Emacs reports an error, backtraces can help us debug the problem.
Type "M-x set-variable RET debug-on-error RET t RET". Then run the
command that causes the error and you should see a *Backtrace* buffer
containing debug information; send us that buffer.

   Note that comments, suggestions, words of praise and large cash
donations are also more than welcome.

1.7 Authors
===========

   * A.J. Rossini (mailto:blindglobe@gmail.com)
   * Richard M. Heiberger (mailto:rmh@temple.edu)
   * Kurt Hornik (mailto:Kurt.Hornik@R-project.org)
   * Martin Maechler (mailto:maechler@stat.math.ethz.ch)
   * Rodney A. Sparapani (mailto:rsparapa@mcw.edu)
   * Stephen Eglen (mailto:stephen@gnu.org)
   * Sebastian P. Luque (mailto:spluque@gmail.com)
   * Henning Redestig (mailto:henning.red@googlemail.com)
   * Vitalie Spinu (mailto:spinuvit@gmail.com)
   * Lionel Henry (mailto:lionel.hry@gmail.com)

1.8 License
===========

The source and documentation of ESS is free software.  You can
redistribute it and/or modify it under the terms of the GNU General
Public License as published by the Free Software Foundation; either
version 2, or (at your option) any later version.

   ESS is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in
the file COPYING in the same directory as this file for more details.

1.9 New Features
================

Changes and New Features in development version:

   * ESS[R]: Fontification of roxygen '@param' keywords now supports
     comma-separated parameters.

   * ESS[R]: Function-like keywords such as 'if ()' or 'stop()' are no
     longer fontified as keyword if not followed by an opening
     parenthesis.  The same holds for search path modifiers like
     'library()' or 'require()'.  This feature is only available in
     Emacs >= 25.

   * ESS modes now inherit from 'prog-mode'.

   * ESS[R]: The package development minor mode now only activates
     within editing buffers by default, i.e.  ones that inherit from
     'prog-mode' or 'text-mode'.  If you want to restore the old
     behaviour and activate the package mode in all buffers (that have a
     'default-directory' that is part of a package path), set
     'ess-r-package-auto-activate' to 't'.

   * ESS now provides support for flymake in R buffers for Emacs 26 and
     newer.  Users need to install the 'lintr' package (available on
     CRAN) to use it.  Customizable options include 'ess-use-flymake',
     'ess-r-flymake-linters', and 'ess-r-flymake-lintr-cache'.

   * Improved customization for faces.  ESS now provides custom faces
     for (nearly) all faces used and places face customization options
     into their own group.  Users can customize these options using 'M-x
     customize-group RET ess-faces'.

   * ESS[R]: Gained support for xref in Emacs 25+.  See Xref (emacs)

   * ESS[R]: Changing the working directory is now always reflected in
     the process buffer.

   * ESS[R]: The startup screen has been cleaned up and displays the
     startup directory with an explicit 'setwd()'.

   * ESS now displays the language dialect in the mode-line So, for
     example, R buffers will now show ESS[R] rather than ESS[S].

   * The ESS manual has been updated and revised.

   * ESS[R]: 'Makevars' files are now automatically opened with
     'makefile-mode'.

   * New varaible 'ess-write-to-dribble'.  This allows users to disable
     the dribble ('*ESS*') buffer if they wish.

   * ESS now respects Emacs conventions for keybindings.  This means
     that The 'C-c [letter]' bindings have been removed.  This affects
     'C-c h', which was bound to 'ess-eval-line-and-step-invisibly' in
     'sas-mode-local-map'; 'C-c f', which was bound to
     'ess-insert-function-outline' in 'ess-add-MM-keys'; and 'C-c h',
     which was bound to 'ess-handy-commands' in 'Rd-mode-map',
     'ess-noweb-minor-mode-map', and 'ess-help-mode-map'

   * prettify-symbols-mode no longer breaks indentation This is
     accomplished by having the pretty symbols occupy the same number of
     characters as their non-pretty cousins.

   * Variable 'ess-s-versions-list' is obsolete and ignored.  Use
     'ess-s-versions' instead.  You may pass arguments by starting the
     inferior process with the universal argument.

   * All of the '*-program-name' variables have been renamed to
     '*-program'.  Users who previously customized e.g.
     'inferior-ess-R-program-name' will need to update their
     customization to 'inferior-ess-R-program'.  These variables are
     treated as risky variables.

   * Customization of ess-smart-S-assign-key has been reworked.  You
     should now set the value before ESS is loaded.  The following
     functions have been made obsolete.  You should customize
     ess-smart-S-assign-key instead: ess-toggle-S-assign,
     ess-toggle-S-assign-key, ess-unset-smart-S-assign-key,
     ess-activate-smart-S-assign-key, ess-disable-smart-S-assign

   Changes and New Features in 17.11:

   * The ESS initialisation process has been streamlined.  You can now
     load the R and Stata modes independently from the rest of ESS. Just
     put '(require 'ess-r-mode)' or '(require 'ess-stata-mode)' in your
     init file.  This is for experienced Emacs users as this requires
     setting up autoloads for '.R' files manually.  We will keep
     maintaining 'ess-site' for easy loading of all ESS features.

   * Reloading and quitting the process is now more robust.  If no
     process is attached, ESS now switches automatically to one
     (prompting you for selection if there are several running).
     Reloading and quitting will now work during a debug session or when
     R is prompting for input (for instance after a crash).  Finally,
     the window configuration is saved and restored after reloading to
     prevent the buffer of the new process from capturing the cursor.

   * ESS[R]: New command 'ess-r-package-use-dir'.  It sets the working
     directory of the current process to the current package directory.

   * ESS[R] Lookup for references in inferior buffers has been improved.
     New variable 'ess-r-package-source-roots' contains package
     sub-directories which are searched recursively during the file
     lookup point.  Directories in 'ess-tracebug-search-path' are now
     also searched recursively.

   * ESS[R] Namespaced evaluation is now automatically enabled only in
     the 'R/' directory.  This way ESS will not attempt to update
     function definitions from a package if you are working from e.g.  a
     test file.

   Changes and New Features in 16.10:

   * ESS[R]: Syntax highlighting is now more consistent.  Backquoted
     names are not fontified as strings (since they really are
     identifiers).  Furthermore they are now correctly recognised when
     they are function definitions or function calls.
   * ESS[R]: Backquoted names and '%op%' operators are recognised as
     sexp.  This is useful for code navigation, e.g.  with 'C-M-f' and
     'C-M-b'.
   * ESS[R]: Integration of outline mode with roxygen examples fields.
     You can use outline mode's code folding commands to fold the
     examples field.  This is especially nice to use with well
     documented packages with long examples set.  Set
     'ess-roxy-fold-examples' to non-nil to automatically fold the
     examples field when you open a buffer.
   * ESS[R]: New experimental feature: syntax highlighting in roxygen
     examples fields.  This is turned off by default.  Set
     'ess-roxy-fontify-examples' to non-nil to try it out.
   * ESS[R]: New package development command 'ess-r-devtools-ask' bound
     to 'C-c C-w C-a'.  It asks with completion for any devtools command
     that takes 'pkg' as argument.
   * ESS[R]: New command 'C-c C-e C-r' to reload the inferior process.
     Currently only implemented for R. The R method runs
     'inferior-ess-r-reload-hook' on reloading.
   * ESS[R]: 'ess-r-package-mode' is now activated in non-file buffers
     as well.

   Bug fixes in 16.10:
   * ESS[R]: Fix broken (un)flagging for debugging inside packages
   * ESS[R]: Fixes (and improvements) in Package development
   * ESS[R]: Completion no longer produces '...=' inside 'list( )'.
   * ESS[R]: Better debugging and tracing in packages.
   * ESS[R]: Better detection of symbols at point.
   * ESS[R]: No more spurious warnings on deletion of temporary files.
   * ESS[julia]: help and completion work (better)
   * ESS[julia]: available via 'ess-remote'

   Changes and New Features in 16.04:

   * ESS[R]: 'developer' functionality has been refactored.  The new
     user interface consists of a single command
     'ess-r-set-evaluation-env' bound by default to 'C-c C-t C-s'.  Once
     an evaluation environment has been set with, all subsequent ESS
     evaluation will source the code into that environment.  By default,
     for file within R packages the evaluation environment is set to the
     package environment.  Set 'ess-r-package-auto-set-evaluation-env'
     to 'nil' to disable this.
   * ESS[R]: New 'ess-r-package-mode' This development mode provides
     features to make package development easier.  Currently, most of
     the commands are based on the 'devtools' packages and are
     accessible with 'C-c C-w' prefix.  See the documentation of
     'ess-r-package-mode' function for all available commands.  With
     'C-u' prefix each command asks for extra arguments to the
     underlying devtools function.  This mode is automatically enabled
     in all files within R packages and is indicated with '[pkg:NAME]'
     in the mode-line.
   * ESS[R]: Help lookup has been improved.  It is now possible to get
     help for namespaced objects such as pkg::foobar.  Furthermore, ESS
     recognizes more reliably when you change 'options('html_type')'.
   * ESS[R]: New specialized breakpoints for debugging magrittr pipes
   * ESS: ESS now implements a simple message passing interface to
     communicate between ESS and inferior process.

   Bug fixes in 16.04:
   * ESS[R]: Roxygen blocks with backtics are now correctly filled
   * ESS[R]: Don't skip breakpoints in magrittr's 'debug_pipe'
   * ESS[R]: Error highlighting now understands 'testthat' type errors
   * ESS[Julia]: Added getwd and setwd generic commands