Next: simlib
Up: simula
Previous: simmake
Simld
NAME
simld - link and execute a Simula program
SYNOPSIS
simld main [modules] [-d] [-Ldirectory] [-llibrary] [-l]
main [-d] [-p] [-g] [-m=Mbyte] [-k=Kbyte] [-input=sysin]
[-output=sysout]
DESCRIPTION
simld is an interface script to the linker, 'ld'. Options
not recognized by simld are passed on to ld.
The name of the Simula main program, 'main', must appear
first on the line. 'modules' are separately compiled Simula
procedures or classes where the location of the
corresponding '.o' files are given explicitly.
Binary libraries of translated Simula or C code to search
for matching routines are named with several -llibrary
options. Note that 'ld' searches these libraries one by
one, left to right, so the relative order between libraries
that depend on each other is important.
Directories of where to look for <library> files (lib*.a)
are given with one or several -Ldirectory switches. Again
this list is searched in order. /usr/local/simulabin is
added last to this list. If the environment variable
SIMULAHOME is defined, that value is, however, used instead.
Libraries can be explicitly named, or given with the '-
l<library> options as of below. Note that the option '-
L<directory> in such cases becomes important since it
defines the order of directories where to search for
libraries.
Executing the resulting executable program 'main' is simply
done by entering its name.
EXAMPLE
In the simplest case, a single Simula main program can be
linked and executed with:
% simld helloworld
% helloworld
A set of separate classes and procedures linked with
utilities in the Lund Simula libraries:
% simld mainprog classa classb procp -l
Linking with the debugger and starting execution in the
debugger:
% simld helloworld -d
% helloworld -d
Printing the version of the runtime system linked with a
Simula program:
% helloworld -p
Executing a Simula program with a larger memory pool for
Simula objects:
% helloworld -m=8 -p
Executing a Simula program with debugger and prepared input:
% helloworld -d -input=some.file
OPTIONS
Options for simld:
-d include debugger support with the executable.
-llibrary
include the file lib<library>.a for search for object
code to include.
-Ldirectory
include <directory> for search for libraries ('.a'
files).
-l include a search of the libraries installed with the
Lund Simula system. Shorthand for "-lsimlib -llibsim"
etc.
Notice that options for simld matches these for simcomp (and
simmake). Specifying -L=dir1:dir2 should be matched with
-Ldir1 -Ldir2 to simld, and specifying -I=liba:libb should
be matched with -lliba -llibb. All three scripts takes the
short hand option '-l' for including all libraries installed
with the Lund Simula system.
Options for executing Simula program:
-d Start execution in the Simula debugger SIMDEB (only
possible if the program has been linked with the SIMDEB
library).
-g Print a message each time the garbage collector is
called.
-k=n Set the memory pool size used for dynamic allocation to
n Kbytes.
-m=n Set the memory pool size used for dynamic allocation to
n Mbytes.
-p Print a message indicating the size of the storage pool
at the start of execution. At the end of execution cpu
time as well as the number of garbage collections is
printed.
-input=file
Connect sysin to file rather than the standard input
channel.
-output=file
Connect sysout to file rather than the standard output
channel.
Note that the input and output of the debugger is not
affected by these two options, but is still connected to the
standard input and output channels. These two options make
it possible to separate debug I/O from program I/O. This is
particularly useful when debugging programs designed to work
with piped I/O.
SEE ALSO
simman simcomp - to compile a Simula program
simman simmake - to compile several dependent Simula modules
simman simula - to get overview and pointers to Simula
libraries