em.1 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. .\" $Id$
  2. .TH EM 1 "$Revision$"
  3. .ad
  4. .SH NAME
  5. em \- calling program for em interpreters
  6. .SH SYNOPSIS
  7. \fBem\fP [-t] [+fcp] [loadfile [args ... ...] ]
  8. .SH DESCRIPTION
  9. The loadfile ("e.out" if not specified) is opened to read the first 8 word header.
  10. The format of this header is explained in e.out(5).
  11. One of these 8 words is a flag word
  12. specifying the interpreter options requested at compile time.
  13. The usual setting of these options is +t -f -c -p.
  14. One of these options may be overridden at run time
  15. by the corresponding flag of em.
  16. Based on these options the name of the appropriate interpreter
  17. is constructed.
  18. .PP
  19. The flags control the following options that can be turned off
  20. or on by prepending them with - or + respectively:
  21. .IP t
  22. run time tests for undefined variables, array bounds etc...
  23. This option costs a small amount of memory and some time.
  24. However, it is very useful for debugging.
  25. .IP p
  26. profiling of the entire program. The interpreter maintain tables containing
  27. an estimate of the number of memory cycles used per source line.
  28. This option is expensive in time as well as in memory space.
  29. The result tables made at run time are dumped onto a file named
  30. em_runinf. This file is converted to human readable format
  31. by the program eminform(1) which writes the profiling information
  32. on a file called em_profile.
  33. .IP f
  34. maintain a bit map of all source lines that have been executed.
  35. This map is written also onto the file em_runinf and can be interpreted by eminform(1) which writes in this case the file em_flow.
  36. This option is almost free in time and space.
  37. .IP c
  38. count line usage in tables that
  39. contains for every source line the number of times it
  40. was entered.
  41. These tables are also written onto em_runinf.
  42. Eminform(1) can be used to convert this information into the
  43. file em_count.
  44. Cheap in time, expensive in memory space.
  45. .PP
  46. These flags
  47. give rise to 5 different interpreters which are in the
  48. directory ~em/lib/em22/em_????
  49. .PP
  50. If the interpreter exits with a non-zero exit status, then the line numbers
  51. of the 64 last executed source lines are dumped on the file
  52. em_runinf
  53. in the current directory. Eminform(1) writes this information
  54. on the human readable file em_last.
  55. .SH "FILES"
  56. .IP ~em/lib/em22/em_???? 35
  57. interpreters proper
  58. .IP em_runinf
  59. memory dump containing runtime information
  60. .IP em_profile
  61. profile data
  62. .IP em_count
  63. source line count data
  64. .IP em_flow
  65. source line flow data
  66. .IP em_last
  67. last lines executed
  68. .PD
  69. .SH "SEE ALSO"
  70. eminform(1), ack(1),
  71. .SH BUGS
  72. Most error messages are self explanatory.
  73. The interpreter stops in case of lack of space with an error
  74. message SEGVIO stack overflow.
  75. If runtime flags are turned on it is advisable to try again
  76. with the default options.