123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- .\" $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.
- One of these options may be overridden at run time
- by the corresponding flag of em.
- Based on these options the name of the appropriate interpreter
- is constructed.
- .PP
- This interpreter is first searched for in /usr/em/mach/pdp/int, then in the current
- directory.
- .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 maintain tables containing
- an estimate of the number of memory cycles used per source line.
- This option is expensive in time as well as in memory space.
- The result tables made at run time are dumped onto a file named
- em_runinf. This file is converted to human readable format
- by the program eminform(I) which writes the profiling information
- on a file called em_profile.
- .IP f
- maintain a bit map of all source lines that have been executed.
- This map is written also onto the file em_runinf and can be interpreted by eminform(I) which writes in this case the file em_flow.
- This option is almost free in time and space.
- .IP c
- count line usage in tables that
- contains for every source line the number of times it
- was entered.
- These tables are also written onto em_runinf.
- Eminform(I) can be used to convert this information into the
- file em_count.
- Cheap in time, expensive in memory space.
- .PP
- These flags
- give rise to 5 different interpreters which are in the
- directory /usr/em/mach/pdp/int
- .PP
- If the interpreter exits with a non-zero exit status, then the line numbers
- of the 64 last executed source lines are dumped on the file
- em_runinf
- in the current directory. Eminform(I) writes this information
- on the human readable file em_last.
- .SH "FILES"
- .IP /usr/em/mach/pdp/int/em_???? 35
- interpreters proper
- .PD 0
- .IP /usr/em/lib/pdp_int/em_????
- source of interpreter
- .IP /usr/em/mach/pdp/int/?+
- positive option switch
- .IP /usr/em/mach/pdp/int/?-
- negative option switch
- .IP em_runinf
- memory dump containing runtime information
- .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"
- eminform(I), ack(I), int(I)
- .SH BUGS
- Most error messages are self explanatory.
- The interpreter stops in case of lack of space with an error
- message SEGVIO stack overflow.
- If runtime flags are turned on it is advisable to try again
- with the default options.
- Bugs should be reported to Evert Wattel.
|