This is the `non-source' distribution of the Slim compiler, consisting
of machine-generated C sources. It has been tested on a Windows NT 3.51
Workstation, using the Microsoft Visual C 2.0 and 4.0 compilers. It should not
be too difficult to use another compiler, but it will require some
changes to the batch files.

To install it, first add the following definitions to your environment:
  CC=cl  /nologo  /G4
  SLIM_HOME=<the directory containing this readme>
  DIFF=fc
  EXE=.exe
  OBJ=obj
  RE=re
  REI=rei
  SLI=..\sli
  SLIM=..\slim
  SLIMI=..\slimi
and add %slim_home% to your path, ie.
  PATH=<your current path>;%slim_home%

I assume that you have already installed the Microsoft Visual C++
compiler (2.0 or later) onto your system and that the necessary
environmental variables have been set. If not, either re-install VC++,
choosing the appropriate options, or provide suitable values for PATH, INCLUDE and LIB.

The /G4 could also be /G5 or /G3. However, the /G5 option causes compiler
errors and incorrect code generation when MSVC 2.0 or 4.0 is used.

Next, type:
  compile
and wait a while. That should be all that's necessary.

To test your installation:
  cd test
  make

Slim source files are expected to have the extension `.slm'. To compile
them, type
  slim yourfile
This will produce the object file `yourfile.obj'.

If your main module is called `mymain.slm', you should also have
a file called `mymain.lnk'. This file should contain a list in []
brackets, of the modules making up your program. For example
  [mymain, myfile]

When you run
  slim mymain
the script will automatically link mymain and myfile into the executable
`mymain'. Prior to this, you should have compiled myfile.

If you wish to defer linking, change `mymain.lnk' to `mymain.lkr'.
You can then link using
  sli mymain
at a later stage.

There is also an interpreter, called slimi. To use it, merely
substitute slimi for slim in the above. The interpreter does not
use the gcc compiler and does not produce an executable. Furthermore,
the `xxx.lnk' or `xxx.lkr' files are not used by it.

If your program uses the Opsys and/or Socket libraries, include a
second list [opsys, slimsock] after the first list in mymain.lnk or mymain.lkr.

(In case you are wondering: I am planning to have a much better
development environment. But right now I have other things to do.)

Queries and comments can be sent to csabhv@upe.ac.za.
