REDUCE Run mode provides the following facilities for running REDUCE:
These facilities include many of those offered by other REDUCE interfaces, but REDUCE IDE does not currently provide typeset quality display of mathematical output.
REDUCE Run mode is a subsidiary library to REDUCE mode and when loaded it hooks itself into and cooperates closely with REDUCE mode.
REDUCE Run mode is built on top of the general command-interpreter-in-a-buffer (comint) mode and so shares a common base functionality and a common set of key bindings with all modes derived from comint mode. This makes these modes easier to use. (Among these, shell mode is likely to be the most familiar. See Interactive Inferior Shell in The Emacs Editor. In fact, REDUCE Run mode is based on the standard library inf-lisp by Olin Shivers. See Running an External Lisp in The Emacs Editor.)
For further documentation on the functionality provided by comint mode
and the hooks available for customizing it, see the comint
customization group and the file comint.el.
Note that, by default, in comint mode the whole interaction buffer is
editable, which applies also to REDUCE Run mode, unlike most other
REDUCE interfaces, in which previous input and output cannot be
changed. This can be particularly disconcerting when deleting
erroneous input “back to the prompt” because, by default, the prompt
itself can also be deleted. This can be prevented by customizing the
option comint-prompt-read-only
. The comint
customization group can be accessed via a link in the REDUCE Run
customization group.
REDUCE is eventually run by the Emacs function make-process
(see see (elisp)Asynchronous Processes), which is implemented in
C code. It runs programs directly if possible, but uses the default
shell to run shell scripts or batch files. It looks up relative
program file names in exec-path
(see see (elisp)Subprocess
Creation). By default, it directs stdout
and
stderr
to the process buffer. It uses pipes for communication
on Microsoft Windows, but pseudo-terminals (ptys) on other platforms.