Skip to content

Commit

Permalink
S-mode 3.4
Browse files Browse the repository at this point in the history
OVERVIEW
========

* Works with version 3.0 S

* Command-line completion of S object names

* Recognition of attached data frames

* Dedicated S Help mode

* Tek graphics support

* Several bugfixes and code cleanups

* Texinfo documentation

CHANGES
=======

For current users of S-mode, here are some of the incompatible
changes and features new to version 3.3 of S-mode:

   * Command-line completion of object names, and faster completion in
     other situations.

   * `Hot Keys' for the commonly-used functions `objects()',
     `search()' and `attach()' and a facility to add your own hot keys
     with keyboard macros.

   * Simultaneous multiple function editing, with integrated
     error-checking and parsing. Mnemonic names for edit buffers.

   * Debugging features: facility for stepping through S code and
     evaluating portions of code with the output appearing as if the
     commands has been typed in manually.

   * S can now be run from a different directory each session.

   * A dedicated mode for viewing S help files. Individual help
     buffers are maintained for quick repeated access. Completion for
     help files without a corresponding object.

   * Facility for maintaining organised backups of S source code.

   * Indenting and formatting commands for editing S source code.

   * Special handling of the S graphics facilities, including an
     experimental Tek graphics mode.

   * Better handling of temporary files and buffers.

   * Some keybindings have changed to conform to GNU guidelines.

Here are the changes to the keybindings from version 2.1:

INFERIOR-S-MODE:

C-c h    S-display-help-on-object    MOVED TO	   C-c C-h         [*]
C-c d    S-dump-object-into-scratch  MOVED TO	   C-c C-d	   [*]
C-c l    S-load-file		     MOVED TO	   C-c C-l	   [*]
C-c C-o  comint-kill-output          REDEFINED AS  S-kill-output
C-c C-z	 comint-stop-subjob	     REDEFINED AS  S-abort

S-MODE:

C-c h    S-display-help-on-object    MOVED TO	   C-c C-h	   [*]
C-c l    S-load-file		     MOVED TO	   C-c C-l	   [*]
C-c z    switch-to-S		     MOVED TO	   C-c C-y	   [*]
C-c C-k  S-eval-line-and-go          MOVED TO	   C-c M-j	   [*]
C-c k	 S-eval-line		     MOVED TO	   C-c C-j	   [*]
C-c C-e  S-eval-function-and-go      MOVED TO	   C-c M-f
				     REDEFINED AS  S-execute-in-tb
C-c e    S-eval-function	     MOVED TO	   C-c C-f	   [*]
C-c C-b	 S-eval-buffer-and-go	     MOVED TO	   C-c M-b
C-c b	 S-eval-buffer		     MOVED TO	   C-c C-b	   [*]
C-c C-r	 S-eval-region-and-go	     MOVED TO	   C-c M-r
C-c r	 S-eval-region		     MOVED TO	   C-c C-r	   [*]

If your fingers insist on using the old bindings, place the following
piece of code in your .emacs to emulate the bindings marked [*] above:

(setq S-mode-load-hook
      '(lambda nil
	 (define-key inferior-S-mode-map "\C-ch" 'S-display-help-on-object)
	 (define-key inferior-S-mode-map "\C-cl" 'S-load-file)
	 (define-key inferior-S-mode-map "\C-cd" 'S-dump-object-into-edit-buffer)
	 (define-key S-mode-map "\C-ch" 'S-display-help-on-object)
	 (define-key S-mode-map "\C-cl" 'S-load-file)
	 (define-key S-mode-map "\C-cz" 'S-switch-to-S)
	 (define-key S-mode-map "\C-c\C-k" 'S-eval-line-and-go)
	 (define-key S-mode-map "\C-ck" 'S-eval-line)
	 (define-key S-mode-map "\C-ce" 'S-eval-function)
	 (define-key S-mode-map "\C-cb" 'S-eval-buffer)
	 (define-key S-mode-map "\C-cr" 'S-eval-region)))

However, I do encourage you to become familiar with the new bindings.

   * General code cleanups and optimizations.

In particular, a number of variable and function names have been
changed. You may need to modify any hooks you used in version 2.1. The
changes are:

Before version 3.3		Version 3.3
------------------		-----------
explicit-Splus-args		inferior-Splus-args
make-S-comint			inferior-S-make-comint
S-send-input			inferior-S-send-input
S-get-old-input			inferior-S-get-old-input
wait-for-S-prompt		inferior-S-wait-for-prompt
S-dump-object-into-scratch	S-dump-object-into-edit-buffer
find-S-object-default		S-read-object-name-default
find-S-object			S-read-object-name
get-S-search-list		S-get-search-list
get-S-object-list-r		S-get-object-list-r
get-S-object-list		S-get-object-list
command-to-S			S-command
beginning-of-S-function		S-beginning-of-function
end-of-S-function		S-end-of-function
extract-word-name		S-extract-word-name
switch-to-S			S-switch-to-S
switch-to-end-of-S		S-switch-to-end-of-S
make-S-function			S-make-function
electric-S-brace		S-electric-brace
calculate-S-indent		S-calculate-indent
mark-S-function			S-mark-function
indent-S-exp			S-indent-exp
set-S-style			S-set-style
find-S-help-file		S-find-help-file
get-S-help-files-list		S-get-help-files-list
nuke-S-help-bs			S-nuke-help-bs
default-S-style			S-default-style

(some of these symbols were not present in version 2.1 of S.el, but
have been used in `private' releases since 2.1)

In addition, many of the internal functions have been modified in
implementation and/or usage. See S.el for more information.
  • Loading branch information
David Smith authored and lionel- committed Apr 19, 2019
1 parent 5cd0f68 commit 3067841
Show file tree
Hide file tree
Showing 8 changed files with 6,405 additions and 381 deletions.
124 changes: 124 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
This file documents the changes from version 2.1 of S.el (also known
as gnuemacs3 on Statlib) and the current version.

For current users of S-mode, here are some of the incompatible
changes and features new to version 3.3 of S-mode:

* Command-line completion of object names, and faster completion in
other situations.

* `Hot Keys' for the commonly-used functions `objects()',
`search()' and `attach()' and a facility to add your own hot keys
with keyboard macros.

* Simultaneous multiple function editing, with integrated
error-checking and parsing. Mnemonic names for edit buffers.

* Debugging features: facility for stepping through S code and
evaluating portions of code with the output appearing as if the
commands has been typed in manually.

* S can now be run from a different directory each session.

* A dedicated mode for viewing S help files. Individual help
buffers are maintained for quick repeated access. Completion for
help files without a corresponding object.

* Facility for maintaining organised backups of S source code.

* Indenting and formatting commands for editing S source code.

* Special handling of the S graphics facilities, including an
experimental Tek graphics mode.

* Better handling of temporary files and buffers.


* Some keybindings have changed to conform to GNU guidelines.

Here are the changes to the keybindings from version 2.1:

INFERIOR-S-MODE:

C-c h S-display-help-on-object MOVED TO C-c C-h [*]
C-c d S-dump-object-into-scratch MOVED TO C-c C-d [*]
C-c l S-load-file MOVED TO C-c C-l [*]
C-c C-o comint-kill-output REDEFINED AS S-kill-output
C-c C-z comint-stop-subjob REDEFINED AS S-abort

S-MODE:

C-c h S-display-help-on-object MOVED TO C-c C-h [*]
C-c l S-load-file MOVED TO C-c C-l [*]
C-c z switch-to-S MOVED TO C-c C-y [*]
C-c C-k S-eval-line-and-go MOVED TO C-c M-j [*]
C-c k S-eval-line MOVED TO C-c C-j [*]
C-c C-e S-eval-function-and-go MOVED TO C-c M-f
REDEFINED AS S-execute-in-tb
C-c e S-eval-function MOVED TO C-c C-f [*]
C-c C-b S-eval-buffer-and-go MOVED TO C-c M-b
C-c b S-eval-buffer MOVED TO C-c C-b [*]
C-c C-r S-eval-region-and-go MOVED TO C-c M-r
C-c r S-eval-region MOVED TO C-c C-r [*]

If your fingers insist on using the old bindings, place the following
piece of code in your .emacs to emulate the bindings marked [*] above:

(setq S-mode-load-hook
'(lambda nil
(define-key inferior-S-mode-map "\C-ch" 'S-display-help-on-object)
(define-key inferior-S-mode-map "\C-cl" 'S-load-file)
(define-key inferior-S-mode-map "\C-cd" 'S-dump-object-into-edit-buffer)
(define-key S-mode-map "\C-ch" 'S-display-help-on-object)
(define-key S-mode-map "\C-cl" 'S-load-file)
(define-key S-mode-map "\C-cz" 'S-switch-to-S)
(define-key S-mode-map "\C-c\C-k" 'S-eval-line-and-go)
(define-key S-mode-map "\C-ck" 'S-eval-line)
(define-key S-mode-map "\C-ce" 'S-eval-function)
(define-key S-mode-map "\C-cb" 'S-eval-buffer)
(define-key S-mode-map "\C-cr" 'S-eval-region)))

However, I do encourage you to become familiar with the new bindings.


* General code cleanups and optimizations.

In particular, a number of variable and function names have been
changed. You may need to modify any hooks you used in version 2.1. The
changes are:

Before version 3.3 Version 3.3
------------------ -----------
explicit-Splus-args inferior-Splus-args
make-S-comint inferior-S-make-comint
S-send-input inferior-S-send-input
S-get-old-input inferior-S-get-old-input
wait-for-S-prompt inferior-S-wait-for-prompt
S-dump-object-into-scratch S-dump-object-into-edit-buffer
find-S-object-default S-read-object-name-default
find-S-object S-read-object-name
get-S-search-list S-get-search-list
get-S-object-list-r S-get-object-list-r
get-S-object-list S-get-object-list
command-to-S S-command
beginning-of-S-function S-beginning-of-function
end-of-S-function S-end-of-function
extract-word-name S-extract-word-name
switch-to-S S-switch-to-S
switch-to-end-of-S S-switch-to-end-of-S
make-S-function S-make-function
electric-S-brace S-electric-brace
calculate-S-indent S-calculate-indent
mark-S-function S-mark-function
indent-S-exp S-indent-exp
set-S-style S-set-style
find-S-help-file S-find-help-file
get-S-help-files-list S-get-help-files-list
nuke-S-help-bs S-nuke-help-bs
default-S-style S-default-style

(some of these symbols were not present in version 2.1 of S.el, but
have been used in `private' releases since 2.1)

In addition, many of the internal functions have been modified in
implementation and/or usage. See S.el for more information.
75 changes: 75 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
S-mode version 3.4
------------------

Please note: the filenames mentioned below may be compressed at this
site (such files will have an extra extension of `.Z'). Such files
need to be transferred in ftp BINARY mode and uncompressed (e.g. with
the Unix "uncompress" utility) at your site. Tar files (ending in
`.tar') must also be transferred in BINARY mode.

This is version 3.4 of the S-mode distribution. You should get
S-mode3.4.tar, which contains the following files:

README This file
CHANGES Changes from version 2.1
S.el (version 3.4) Emacs-lisp code for S-mode
S-tek.el (version 1.0) Graphics engine for Tek terminals
comint.el The comint package
comint-extra.el Additions to the comint package
comint-isearch.el Incremental search for comint command history
S-mode.texinfo (v 1.20) Documentation for S-mode

(You can extract these files with the Unix command "tar xvf S-mode3.4.tar")


INSTALLING THE DOCUMENTATION
----------------------------

Within Emacs, type "C-h i m Texinfo RET" for information on
installing and reading Texinfo files. If you can't do this then you
can get one of the following files from attunga.stats.adelaide.edu.au
in directory pub/S-mode by anonymous ftp:

S-mode.info For installing in your info tree
S-mode.ps Postscript version of the documentation
S-mode.dvi DVI version of the documentation

INSTALLING S-MODE
-----------------

Create a directory (say, `~/elisp') to place the Emacs-Lisp files.
Copy `S.el', `comint.el' and `comint-extra.el' to that directory, and
add the lines

(setq load-path (cons (expand-file-name "~/elisp") load-path))
(autoload 'S "S" "Run an inferior S process" t)
(autoload 's-mode "S" "Mode for editing S source" t)

to your `.emacs' file. You can byte-compile the `.el' files if you
wish. See the documentation and the `S.el' file for more details ---
in particular, if you use a non-standard prompt or if the command to
run S is not `Splus' then you have more to do.

CHANGES FROM VERSION 2.1
------------------------

See the file CHANGES in the S-mode distribution.

BUG REPORTS, ETC
----------------

Until the end of August 1992, please report bugs to me at
dsmith@stats.adelaide.edu.au. After this date, mail to that address
will not be answered for some time; please contact Frank Ritter
(Frank_Ritter@SHAMO.SOAR.CS.CMU.EDU) or any of the other authors then
(please CC: to me as well though -- you never know, I might just
answer!) Comments, suggestions, words of praise and large cash
donations are also more than welcome.


Enjoy!

--
Dave Smith <dsmith@stats.adelaide.edu.au>
Department of Statistics
University of Adelaide, South Australia
Loading

0 comments on commit 3067841

Please sign in to comment.