97 lines
3.4 KiB
Groff
97 lines
3.4 KiB
Groff
.\" $Header$
|
|
.TH EM I
|
|
.ad
|
|
.SH NAME
|
|
em \- calling program for em interpreters
|
|
.SH SYNOPSIS
|
|
em [-t] [+fcp] [loadfile [args ... ...] ]
|
|
.SH DESCRIPTION
|
|
The loadfile ("e.out" if not specified) is opened to read the first 8 word header.
|
|
The format of this header is explained in e.out(V).
|
|
One of these 8 words is a flag word
|
|
specifying the interpreter options requested at compile time.
|
|
The usual setting of these options is +t -f -c -p.
|
|
These options may be overridden at runtime as follows:
|
|
em -t turns the test option of; em +c turns count on ; em +p turns profile
|
|
on ; em +c +p turns both count and profile on.
|
|
Based on these options the name of the appropriate interpreter
|
|
is constructed.
|
|
Two versions exist, one for two byte words and four byte pointers and
|
|
one for four byte words and pointers.
|
|
The information in the header of the e.out file is used by em to select the
|
|
right interpreter for the word size of used in the e.out file.
|
|
.PP
|
|
This interpreter is searched for in /usr/em/lib/int[24]4.
|
|
.PP
|
|
The flags control the following options that can be turned off
|
|
or on by prepending them with - or + respectively:
|
|
.IP t
|
|
run time tests for undefined variables, array bounds etc...
|
|
This option costs a small amount of memory and some time.
|
|
However, it is very useful for debugging.
|
|
.IP p
|
|
profiling of the entire program. The interpreter maintains tables containing
|
|
an estimate of the number of processor state cycles used per source line.
|
|
A processor state cycle is equal to two internal clock cycles.
|
|
This option is expensive in time as well as in memory space.
|
|
The result tables made at run time are dumped in a human readable
|
|
format onto a file named
|
|
em_profile.
|
|
.IP f
|
|
maintain a bit map of all source lines that have been executed.
|
|
This map is written onto a file em_flow .
|
|
This option is almost free in time and space.
|
|
The file is not easy to read.
|
|
Of each procedure only the lines between the first statement and the last
|
|
statement are represented in the bit map.
|
|
Currently this option is not installed in the em tree.
|
|
.IP c
|
|
count line usage in tables that
|
|
contains for every source line the number of times it
|
|
was entered.
|
|
These tables are written onto em_count, a human readable file .
|
|
This option is cheap in time, but costs some in memory space.
|
|
.IP l
|
|
dump the line numbers of the last 64 lines entered onto a file named
|
|
em_last.
|
|
This file will be in a human readable format.
|
|
This option is used simultaneously with the test option.
|
|
.PP
|
|
These flags
|
|
give rise to 5 different interpreters which are in the
|
|
directory /usr/em/lib/int24 or in /usr/em/lib/int44
|
|
for the two byte word or the four byte word options, respectively.
|
|
.PP
|
|
.SH "FILES"
|
|
.IP /usr/em/lib/int[24]4/em_???? 35
|
|
interpreters proper
|
|
.PD 0
|
|
.IP /usr/em/mach/m68k2/int/mloop?
|
|
source of interpreter
|
|
.IP em_profile
|
|
profile data
|
|
.IP em_count
|
|
source line count data
|
|
.IP em_flow
|
|
source line flow data
|
|
.IP em_last
|
|
last lines executed
|
|
.PD
|
|
.SH "SEE ALSO"
|
|
\fIack\fP(I),
|
|
\fIint24\fP(I),
|
|
\fIint44\fP(I)
|
|
.SH BUGS
|
|
Most error messages are self explanatory.
|
|
If runtime flags are turned on it is advisable to try again
|
|
with the default options.
|
|
If the interpreter does not work most probably your particular
|
|
machine has an other format for the system calls then assumed
|
|
in the source.
|
|
In that case adapt source file mloopc to your machine.
|
|
Also the instruction that causes the machine to allocate stack
|
|
space might differ .
|
|
In that case adapt the macro 'claimstack' in deffile.
|
|
.SH AUTHOR
|
|
Freek van Schagen
|