[ESS] ESS 18.10 released
Martin Maechler
m@echler @ending from @t@t@m@th@ethz@ch
Sat Oct 20 22:29:21 CEST 2018
Dear ESS Users
it's a pleasure to announce the release of
ESS 18.10 (2018 October)
of a few minutes ago in the name of the ESS core team.
There have been many changes and improvements since the last
official release 17.11 (in last November)
For the complete list of (documented) new features and bug
fixes, read the following (beginning of file 'ANNOUNCE') to the end.
In the name of the ESS core team, with thanks to all helpers,
notably by github pull requests,
Martin Maechler, ETH Zurich
1 ANNOUNCING ESS
****************
The ESS Developers proudly announce the release of ESS 18.10
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
==============================
ESS supports GNU Emacs versions 24.3 and newer.
ESS is most likely to work with current/recent versions of the
following statistical packages: R/S-PLUS, SAS, Stata, OpenBUGS and JAGS.
To build the PDF documentation, you will need a version of TeX Live
or texinfo that includes texi2dvi.
There are two main methods used for installing ESS. You may install
from a third-party repository or from source code. Once you install it,
you must also activate or load ESS in each Emacs session, though
installation from a third-party repository likely takes care of that for
you. See *note Activating and Loading ESS:: for more details.
1.2 Installing from a third-party repository
============================================
ESS is packaged by many third party repositories. Many GNU/Linux
distributions package it, usually with the name "emacs-ess" or similar.
ESS is also available through Milkypostman’s Emacs Lisp Package
Archive (MELPA), a popular repository for Emacs packages. Instructions
on how to do so are found on MELPA's website (https://melpa.org/).
MELPA also hosts MELPA-stable with stable ESS builds. You may choose
between MELPA with the latest and greatest features (and bugs) or
MELPA-stable, which may lag a bit behind but should be more stable.
After installing, users should make sure ESS is activated or loaded
in each Emacs session. See *note Activating and Loading ESS::.
Depending on install method, this may be taken care of automatically.
1.3 Installing from source
==========================
Stable versions of ESS are available at the ESS web page
(https://ess.r-project.org) as a .tgz file or .zip file. ESS releases
are GPG-signed, you should check the signature by downloading the
accompanying '.sig' file and doing:
gpg --verify ess-18.10.tgz.sig
Alternatively, you may download the git repository. ESS is currently
hosted on Github: <https://github.com/emacs-ess/ESS>. 'git clone
https://github.com/emacs-ess/ESS.git' will download it to a new
directory 'ESS' in the current working directory.
We will refer to the location of the ESS source files as
'/path/to/ESS/' hereafter.
After installing, users should make sure they activate or load ESS in
each Emacs session, see *note Activating and Loading ESS::
Optionally, compile elisp files, build the documentation, and the
autoloads:
cd /path/to/ESS/
make
Without this step the documentation, reference card, and autoloads
will not be available. Uncompiled ESS will also run slower.
Optionally, you may make ESS available to all users of a machine by
installing it site-wide. To do so, run 'make install'. You might need
administrative privileges:
make install
The files are installed into '/usr/share/emacs' directory. For this
step to run correctly on macOS, you will need to adjust the 'PREFIX'
path in 'Makeconf'. The necessary code and instructions are commented
in that file.
1.4 Activating and Loading ESS
==============================
After installing ESS, you must activate or load it each Emacs session.
ESS can be autoloaded, and if you used a third-party repository (such as
your Linux distribution or MELPA) to install, you can likely skip this
section and proceed directly to *note Check Installation::
Otherwise, you may need to add the path to ESS to 'load-path' with:
(add-to-list 'load-path "/path/to/ESS/lisp")
You then need to decide whether to take advantage of deferred loading
(which will result in a faster Emacs startup time) or require ESS when
Emacs is loaded. To autoload ESS when needed (note that if installed
from source, you must have run 'make'):
(load "ess-autoloads")
To require ESS on startup, you can either put
(require 'ess-site)
or
(require 'ess-r-mode)
In your configuration file, depending on whether you want all ESS
features or only R related features.
1.5 Check Installation
======================
Restart Emacs and check that ESS was loaded from a correct location with
'M-x ess-version'.
1.6 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 (S family, SAS, Stata, Julia)
* Command-line editing
* Searchable Command history
* Command-line completion of S 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.7 Requirements
================
ESS supports GNU Emacs versions 24.3 and newer.
ESS is most likely to work with current/recent versions of the
following statistical packages: R/S-PLUS, SAS, Stata, OpenBUGS and JAGS.
To build the PDF documentation, you will need a version of TeX Live
or texinfo that includes texi2dvi.
1.8 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 using r-project.org>; contributions
to the list may be mailed to <ess-help using 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.9 Reporting Bugs
==================
Please send bug reports, suggestions etc. to <ESS-bugs using 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.10 Authors
============
* A.J. Rossini (mailto:blindglobe using gmail.com)
* Richard M. Heiberger (mailto:rmh using temple.edu)
* Kurt Hornik (mailto:Kurt.Hornik using R-project.org)
* Martin Maechler (mailto:maechler using stat.math.ethz.ch)
* Rodney A. Sparapani (mailto:rsparapa using mcw.edu)
* Stephen Eglen (mailto:stephen using gnu.org)
* Sebastian P. Luque (mailto:spluque using gmail.com)
* Henning Redestig (mailto:henning.red using googlemail.com)
* Vitalie Spinu (mailto:spinuvit using gmail.com)
* Lionel Henry (mailto:lionel.hry using gmail.com)
* J. Alexander Branham (mailto:alex.branham using gmail.com)
1.11 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.12 New Features
=================
Changes and New Features in 18.10:
* This is the last release to support Emacs older than 25.1. Going
forward, only GNU Emacs 25.1 and newer will be supported. Soon
after this release, support for older Emacs versions will be
dropped from the git master branch. Note that MELPA uses the git
master branch to produce ESS snapshots, so if you are using Emacs <
25.1 from MELPA and are unable to upgrade, you should switch to
MELPA-stable.
* 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.
* The ESS initialization process has been further streamlined. If
you update the autoloads (which installation from 'package-install'
does), you should not need to '(require 'ess-site)' at all, as
autoloads should automatically load ESS when it is needed (e.g.
the first time an R buffer is opened). In order to defer loading
your ESS config, you may want to do something like
'(with-require-after-load "ess" <ess-config-here>)' in your Emacs
init file. Users of the popular 'use-package' Emacs package can
now do '(use-package ess :defer t)' to take advantage of this
behavior. *Note (ess)Activating and Loading ESS:: for more
information on this feature.
* 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'
* ESS[R]: 'ess-r-package-use-dir' now works with any mode. This sets
the working directory to the root of the current package including
for example C or C++ files within '/src').
* ESS[R]: Long + + prompts in the inferior no longer offset output.
* ESS[R]: New option 'strip' for 'inferior-ess-replace-long+'. This
strips the entire + + sequence.
* ESS modes now inherit from 'prog-mode'. In the next release, ESS
modes will use 'define-derived-mode' so that each mode will have
(for example) its own hooks and keymaps.
* ESS[R]: Supports flymake in R buffers for Emacs 26 and newer.
Users need to install the 'lintr' package to use it. Customizable
options include 'ess-use-flymake', 'ess-r-flymake-linters', and
'ess-r-flymake-lintr-cache'.
* ESS[R]: Gained support for xref in Emacs 25+. *Note (emacs)Xref::
* ESS[R]: The startup screen is cleaner. It also displays the
startup directory with an explicit 'setwd()'.
* ESS[R]: Changing the working directory is now always reflected in
the process buffer.
* ESS[R]: 'Makevars' files open with 'makefile-mode'.
* New variable 'ess-write-to-dribble'. This allows users to disable
the dribble ('*ESS*') buffer if they wish.
* 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.
* 'ess-smart-S-assign' was renamed to 'ess-insert-assign'. It
provides similar functionality but for any keybinding, not just
'_'. For instance if you bind it to ';', repeated invokations
cycle through between assignment and inserting ';'.
* 'C-c C-=' is now bound to 'ess-cycle-assign' by default. See the
documentation for details. New user customization option
'ess-assign-list' controls which assignment operators are cycled.
* ESS[R] In remote sessions, the ESSR package is now fetched from
GitHub.
* Commands that send the region to the inferior process now deal with
rectangular regions. See the documentation of 'ess-eval-region'
for details. This only works on Emacs 25.1 and newer.
* ESS[R]: Improvements to interacting with iESS in non-R files.
Interaction with inferior process in non-R files within packages
(for instance C or C++ files) has been improved. This is a work in
progress.
* ESS[R]: Changing the working directory is now always reflected in
the process buffer.
* ESS[JAGS]: *.jog and *.jmd files no longer automatically open in
JAGS mode.
Many improvements to fontification:
* 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'.
* Many new keywords were added to 'ess-R-keywords' and
'ess-R-modifiers'. See the documentation for details.
* ESS[R]: 'in' is now only fontified when inside a 'for' construct.
This avoids spurious fontification, especially in the output buffer
where 'in' is a commond English word.
* ESS: Font-lock keywords are now generated lazily. That means you
can now add or remove keywords from variables like 'ess-R-keywords'
in your Emacs configuration file after loading ESS (i.e. in the
':config' section for 'use-package' users).
* ESS[R]: Fontification of roxygen '@param' keywords now supports
comma-separated parameters.
* ESS[R]: Certain keywords are only fontified if followed by a
parenthesis. 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()'.
* ESS[R]: Fixed fontification toggling. Especially certain syntactic
elements such as '%op%' operators and backquoted function
definitions.
* ESS[R]: 'ess-font-lock-toggle-keyword' can be called interactively.
This command asks with completion for a font-lock group to toggle.
This functionality is equivalent to the font-lock menu.
Notable bug fixes:
* '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. You may customize the new
variable 'ess-r-prettify-symbols' to control this behavior.
* ESS: Inferior process buffers are now always displayed on startup.
Additionally, they don't hang Emacs on failures.
Obsolete libraries, functions, and variables:
* The 'ess-r-args.el' library has been obsoleted and will be removed
in the next release. Use 'eldoc-mode' instead, which is on by
default.
* Functions and options dealing with the smart assign key are
obsolete. The following functions have been made obsolete and will
be removed in the next release of ESS: 'ess-smart-S-assign',
'ess-toggle-S-assign', 'ess-toggle-S-assign-key',
'ess-disable-smart-S-assign'.
The variable 'ess-smart-S-assign-key' is now deprecated and will be
removed in the next release. If you would like to continue using
'_' for insterting assign in future releases, please bind
'ess-insert-assign' in 'ess-mode-map' the normal way.
* ESS[S]: 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.
Changes and New Features in 17.11:
..............
..............
More information about the ESS-help
mailing list