
1. Unpack the release, if you're reading this, you've already
   gotten this far.  If you haven't, then uncompress and unpack
   the release file as follows:
     % zcat twine.0.9.tar.Z | tar xfv -

2. Edit the file Makefile and replace ``SUN3'' with the appropriate 
   machine type (SUN3 for Sun 3's, SGI for Silicon Graphics boxes, 
   SPARC for sparc stations, GENERIC for other 32 bit platforms).  
   It is found on a definition line of the form: MACHINE=SUN3.

3. Set the O.S. being used on this computer (BSD, SYSV): OS=BSD.
   Read notes below for problems related to the different O.S.

4. Set the appropriate directory containing the OSC binary files
   in COMPILER/Makefile.  The current setting is:
   SISBIN=/usr/new/sisal/Osc/bin

5. For SGI machines only, you must set your default shell if
   you don't use /bin/sh.  To do this from the CSH, execute:
     % setenv SHELL /bin/sh

6. For people using the GENERIC machine code, set the OPTFLAGS
   without any optimization, i.e., eliminate -O.

7. Create an installation directory (default=/usr/new/sisal/TWINE)
   and subdirectories.  The installation directory must contain the 
   following subdirectories: bin, lib, man, and include.  (Make sure
   they have appropriate user access).

8. Edit Makefile to reflect the installation directory.  The
   current setting is:
	REL=/usr/new/sisal/TWINE

9. Make the executables: (~10mins for ~SGI, 30mins for Sun3)
     % make >& make.out

10. If all goes well, make the installation:
     % make install

11. Optionally run the test suite that is in the SUITE directory.  
    You must include the installation directory bin subdirectory in 
    your current path.
     % CheckTwine >& suite.out


NOTES:
1. In some systems the assignment to a char** variable is not allowed
   (SGI System V for ex). If you get an error from your CC compiler,
   you may edit the file INCLUDES/SCLib.h and define CHARSTARSTAR as
   nothing.  Ignore the warnings obtained when compiling the files
   containing this assignments.

2. If your system defines sprintf as a function returning int and you
   are NOT running System V Unix, edit the file SCLib.h and eliminate
   the line extern char *sprintf().  Other files may contain this line
   as well.

3. Some of the files in the YIFT directory may be too big for your
   compiler to handle (nuloop.c).  You may edit this file into smaller
   modules and modify the Makefile in the YIFT directory.  This is a
   temporary application to convert LoopA and LoopB constructs to
   Iter Loops.  Later versions of TWINE will have the implementation
   of LoopA and LoopB.

4. When using the GENERIC machine code verify that the SIG_IGN flag
   will cause the system to ignore the SIGFPE when it occurs again,
   thus allowing the application to skip the offending machine code
   instruction.  If this is not the case the application will go into
   a tight infinite loop.  When running the test suite in SUITE/basic
   the line #X=t.out -entry rmul -args '1e35 1e35' >> results.5.5 can 
   use to verify that the SIG_IGN flag works properly.  To solve the
   problem you can add software to increment the appropriate number of
   words to the program counter or to exit the application and print
   an error message.

5. Those systems using IEEE 754 floating point standard (SGI) will see
   the values NaN and Infinity when running the test suite in SUITE/basic.
   These values will cause a miscompare in results.5.5.  If you want the
   application to return an error when these or other values are generated
   you can add the appropriate software to the files under ARITH.
