Since REDTEN is a large package layered onto REDUCE, the first prerequisite to running REDTEN is to have a computer that can successfully run REDUCE, and to obtain REDUCE itself. The range of machines which can be used is now very large, from relatively small 286's to large super-minis and mainframes. In all cases, at least 4 Megabytes of RAM are recomended if any reasonable amount of work is to be done. With the ever-decreasing cost of memory, this requirement is no longer particularly difficult or expensive to meet.
The REDTEN distribution comes as a compressed tar file of a little more than 500 Kbytes. It uncompresses to about 1.4 Mbytes. One needs twice this amount of disk space to hold the tar file and the extracted sources. The size of the compiled REDTEN varies depeding on the lisp system used, but can be a few hundred Kbytes.
Assuming that a REDUCE package has been obtained for a particular machine, bringing up REDTEN is a straightforward process of compiling the source modules together into a loadable file. The user should make note of the following information:
This information is used to set up the following files in the REDTEN source directory (see also the file README in the source directory).
Under a UNIX system (or one that is capable of running shell scripts), the shell script setup in the root directory of the distribution will determine the above information and set-up the first three system files correctly. This script assumes a link to the REDUCE executable has been made in the root directory of the REDTEN distribution. The determination of the lisp type and the copying of sysfn.red is up to the user.
Finally, REDTEN makes use of a control sequence to move the cursor up a line on the screen, this is stored as a list on the variable upcursor!*. The default value is set near the top of the sys.env file, and is appropriate to a VT100 terminal or similar. If different kind of display screen is used, the correct control sequence can be defined here (the list consists of literal control character and strings). The control variable can also be set from the users environment via the UPCUROSR environment variable. This is still a bit flakey.
Once the source files are properly set the user must define the redten environment variable. Under DOS try
set redten=<path to root of REDTEN distribution>and under UNIX (and csh) type
setenv redten <path to root of REDTEN distribution>You are now ready to compile REDTEN. The exact details vary depending on the underlying lisp system. For PSL and similar lisps, move in to the fasl directory and start REDUCE. Type the following:
#: in "$redten/src/redten.gen"$This will start the REDUCE compiler, load all the source files, and leave a file called redten.b in the current directory. The process may take several minutes to complete, and REDUCE will exit at the end of it.
For lisps like CSL, the same commands apply, but a separate compiled redten.b file is not produced, rather the compiled code is added to the REDUCE ``image'', and can be loaded on demand. You may need special privileges in order to modify the REDUCE image.
If REDUCE fails to compile the entire set of sources in one go (exiting with a ``Heap space exhausted'' message), then REDTEN will need to be compiled one source file at a time. This can be done as above by using the file redten1.gen instead of redten.gen. If this is done, you must also set the redten environment variable each time you want to run REDTEN.
To use REDTEN, first start REDUCE, then load the compiled REDTEN code. In PSL this is done with the load() function:
#: load "redten"; "Reduce-tensor, Version v4.0, Wed Nov 16 13:49:23 EST 1994 "$while in CSL the equivalent command is called load!-module().
After REDTEN is loaded for the first time, it should be tested with some of the examples found in the demo directory. Simply use the REDUCE in() command to input any of the demo files.