Introduction ------------ GNU Cim is a compiler for the programming language Simula (except unspecified parameters to formal or virtual procedures (see the documentation for how portable code for formal procedures can be written)). It offers a class concept, separate compilation with full type checking, interface to external C routines, an application package for process simulation and a coroutine concept. The portability of the GNU Simula Compiler is based on the C programming language. The compiler and the run-time system is written in C, and the compiler produces C code, that is passed to a C compiler for further processing towards machine code. Copyright --------- GNU Cim is copyrighted by Sverre Hvammen Johansen, Stein Krogdahl, and Terje Mjøs, Department of Informatics, University of Oslo (plus some minor parts from Free Software Fundation). GNU Cim is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Compilation ----------- The following instructions assumes that you are using a Bourne-compatible shell. Further details can be found in the enclosed INSTALL file. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' (or `CFLAGS=-O2 LDFLAGS=-s ./configure', which is recomended when using GCC) to configure the package for your system. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package 3. Type `make install' to install the package You may want to compile the run-time-system with CFLAGS=-O2, but have the cim compiler compile produced C-code with CFLAGS=-O0. This can most easilly be done by the following steps: 1. `cd' to the directory containing the package's source code and type `CFLAGS=-O2 ./configure' 2. Type `make' to compile the package. 3. Type `make install' to install the package. 4. type `CFLAGS=-O0 ./configure' 5. type `cd src; make' followed by `make install' GCC may run out of virtual memory, and therefore you may want to use a standard C-compiler instead. You can do that by typing `CC=cc ./configure' Static vs. shared libraries --------------------------- Cim builds by default both static and shared libraries. You may need to set some environment variables (LD_LIBRARY_PATH under Linux) or edit some system configuration file (/etc/ld.so.conf under Linux) to get access to the shared libraries at run-time. See the message that is produced at the end of `make install' for some details. If you don't want shared libraries, then please run `./configure' with option --disable-shared. Static libraries can be disabled with the option --disable-static. Bugs ---- Please mail bug reports for Cim to bug-cim@gnu.org. Please include the Cim version number and the system type, which you can get by running "cim --version", a copy of config.cache, and relevant Simula- and produced C-code. Version 4 --------- GNU Cim version 4 is experimental. If you want a stable compiler, please use version 3 instead. We are planing support for more optimizations. Version 3 --------- GNU Cim version 3 is no longer experimental. The compiler may use a lot of virtual memory. If that is a problem for you, please split your program into separate compiled modules or use version 2 of cim instead. Sverre Hvammen Johansen